《Effective Java》学习笔记 ——异常

  充分发挥异常的优点,可以提高程序的可读性、可靠性和可维护性。

 

第57条 只针对异常的情况才使用异常

 

第58条 对可恢复的情况使用受检异常,对编程错误使用运行时异常

  * 如果期望调用者能够适当的恢复,使用受检异常。

  * 大多数的运行时异常都表示前提违例(precondition violation),如ArrayIndexOutOfBoundsException。

  * 错误往往被JVM保留用于表示资源不足、约束失败,或其他无法继续执行的条件。最好不要再实现任何新的Error子类。

 

第59条 避免不必要的使用受检的异常

 

第60条 优先使用标准的异常

  * 常用异常:IllegalArgumentException、IllegalStatusException、NullPointerException、IndexOutOfBoundsException、ConcurrentModificationException、UnsupportedOperationException等。

 

第61条 抛出与异常相对于的异常

  * 更高层的实现应该捕获底层的异常,同时抛出可以按照高层抽象进行解释的异常。这种做法被称为异常转义(exception translation),如AbstractSequentialList类的例子:

1 public E get(int index) { 2 try { 3 return listIterator(index).next(); 4 } catch (NoSuchElementException exc) { 5 throw new IndexOutOfBoundsException("Index: "+index); 6 } 7 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zypddy.html