摘要: No57 只针对异常的情况才使用异常异常应该只用于异常的情况下,它们永远不应该用于正常的控制流。No58 对可恢复的情况使用受检异常,对编程错误使用运行时异常Java程序设计语言提供了三种可抛出结构(throwable):受检的异常(checked exception)、运行时异常(run-time exception)和错误(error)。如果期望调用者能够适当地恢复,对于这种情况就应该使用受检的异常。用运行时异常来表明编程错误。例如:数组访问下标越界。错误往往被JVM保留用于表示资源不足、约束失败,或者其它使程序无法继续执行的条件。No60 优先使用标准的异常表60 常用的异常异常使用场合 阅读全文
posted @ 2013-08-10 14:21 那些年的事儿 阅读(392) 评论(0) 推荐(0) 编辑
摘要: No45 将局部变量的作用域最小化要使局部变量的作用域最小化,最有力的方法就是在第一次使用它的地方声明。几乎每个局部变量的声明都应该包含一个初始化表达式。如果你还没有足够的信息来对一个变量进行有意义的初始化,就应该推迟这个声明,直到可以初始化为止。for循环比while循环好,参考如下两段代码:有问题的代码,运行时不会得到想要的结果:Iterator i = c.iterator();while(i.hasNext()){ doSomething(i.next());}...Iterator i2 = c2.iterator();while(i.hasNext()) { ... 阅读全文
posted @ 2013-08-10 14:18 那些年的事儿 阅读(288) 评论(0) 推荐(0) 编辑
摘要: No38 检查参数的有效性对于公有的方法,要用Javadoc的@throws标签(tag)在文档中说明违反参数值时会抛出的异常。这样的异常通常为IllegalArgumentException、IndexOutOfBoundsException或NullPointerException。/*** ...* @throws ArithmeticException if m is less than or equal to 0*/public BigInteger mod(BigInteger m) { if(m.signum() =0 && offset = 0&& 阅读全文
posted @ 2013-08-10 14:08 那些年的事儿 阅读(296) 评论(0) 推荐(0) 编辑