当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: 与 C++ 类似,Java 语言也提供异常的抛出和捕获。
 

 

 ·tomcat/mysql jndi使用配置说明    »显示摘要«
    摘要: 下载安装tomcat & mysqltomcat目前版本为 5.0.28下载地址: http://jakarta.apache.org/site/binindex.cgi tomcat配置如果出现unable to find a javac compiler;com.sun.tools.javac.main is not on the classpath.perhaps java_hom......
 ·java入门笔记6    »显示摘要«
    摘要: 1. 多线程 1.1 创建线程类 在java中可以简单的从thread类中继承创建自己的线程类: public class myfirstthread extends thread { public void run() { . . .} } 说明: (1) thread类位是java.lang包中,所以可以不用显示import; (2) 从thread类中继承下来的类最好重......


Java 理论与实践: 关于异常的争论 ***推荐***
与 c++ 类似,java 语言也提供异常的抛出与捕获.但是,与 c++ 不一样的是,java 语言支持检查型与非检查型异常.java 类必须在方法签名中声明它们所抛出的任何检查型异常,并且对于任何方法,如果它调用的方法抛出一个类型为 e 的检查型异常,那么它必须捕获 e 或者也声明为抛出 e(或者 e 的一个父类).通过这种方式,该语言强制我们文档化控制可能退出一个方法的所有预期方式.

传统的观点 【程序编程相关:NHibernate(one-to-ma

对于因为编程错误而导致的异常,或者是不能期望程序捕获的异常(解除引用一个空指针,数组越界,除零,等等),为了使开发人员免于处理这些异常,一些异常被命名为非检查型异常(即那些继承自 runtimeexception 的异常)并且不需要进行声明. 【推荐阅读:用javamail收取hotmail的退

因为 java 语言并不要求方法捕获或者指定运行时异常,因此编写只抛出运行时异常的代码或者使得他们的所有异常子类都继承自 runtimeexception ,对于程序员来说是有吸引力的.这些编程捷径都允许程序员编写 java 代码而不会受到来自编译器的所有挑剔性错误的干扰,并且不用去指定或者捕获任何异常.尽管对于程序员来说这似乎比较方便,但是它回避了 java 的捕获或者指定要求的意图,并且对于那些使用您提供的类的程序员可能会导致问题. 【扩展信息:jsp2 tag学习笔记

在下面的来自 sun 的“the java tutorial”的摘录中,总结了关于将一个异常声明为检查型还是非检查型的传统观点(更多的信息请参阅 参考资料):

检查型异常代表关于一个合法指定的请求的操作的有用信息,调用者可能已经对该操作没有控制,并且调用者需要得到有关的通知 —— 例如,文件系统已满,或者远端已经关闭连接,或者访问权限不允许该动作.

如果您仅仅是因为不想指定异常而抛出一个 runtimeexception,或者创建 runtimeexception 的一个子类,那么您换取到了什么呢?您只是获得了抛出一个异常而不用您指定这样做的能力.换句话说,这是一种用于避免文档化方法所能抛出的异常的方式.在什么时候这是有益的?也就是说,在什么时候避免注明一个方法的行为是有益的?答案是“几乎从不.”

换句话说,sun 告诉我们检查型异常应该是准则.该教程通过多种方式继续说明,通常应该抛出异常,而不是 runtimeexception —— 除非您是 jvm.

在 effective java: programming language guide 一书中(请参阅 参考资料),josh bloch 提供了下列关于检查型与非检查型异常的知识点,这些与 “the java tutorial” 中的建议相一致(但是并不完全严格一致):

第 39 条:只为异常条件使用异常.也就是说,不要为控制流使用异常,比如,在调用 iterator.next() 时而不是在第一次检查 iterator.hasnext() 时捕获 nosuchelementexception.

第 40 条:为可恢复的条件使用检查型异常,为编程错误使用运行时异常.这里,bloch 回应传统的 sun 观点 —— 运行时异常应该只是用于指示编程错误,例如违反前置条件.
...   下一页
 ·java入门笔记7    »显示摘要«
    摘要: 1. streams及i/o stream就是信息源与目的地之间的通信路径,这里的信息源可以是文件、内存、网络等。streams主要分为input及output stream。 1.1 inputstream类 类inputstream处于input stream类层次的最顶层,它主要具有以下几种方法: 1.1.1 read方法 read方法用于从指定的输入流读取以字节为单位的数据,第......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE