第九章 违例差错的控制 2018-11-01

1.

捕获Exception e 的不同方法

e.getMessage(): Here's my Exception

e.toString(): java.lang.Exception: Here's my Exception

e.printStackTrace():java.lang.Exception: Here's my Exception at ExceptionMethods.main

2.

e.printStackTrace():会打印出从里到外的异常抛出点

违例堆栈路径无论如何都会记住它的真正起点,无论自己被重复“掷”了好几次。

throw e.fillInStackTrace();会使抛出点为异常的起点

throw new NullPointerException("from main"); 只知道从main获得的异常,不知道内部

3.

①继承和实现同时存在时,方法的存在覆盖和实现时,仅继承继承方法的异常,若实现继承类中没有的方法,就可以抛出接口中的异常

②构造器中,需要列明继承类和实现类的所有构造器异常

③若父类中的方法没有抛出异常,则子类中重写的方法也不能抛出异常

④若父类中的方法有抛出异常,而子类中的重写方法也可以不抛出异常

⑤编译器就会强迫我们只捕获特定于那个类的违例。但假如我们上溯造型到基础类型,编译器就会强迫我们捕获针对基础类的违例

⑥用于一个特定方法的“违例规范接口”可能在继承和覆盖时变得更“窄”,但它不会变得更“宽”

4.finally都会在违例控制机制转到更高级别搜索一个控制器之前得以执行

5.catch(Exception e)能捕获一个Exception 以及从它衍生的任何类

你可能感兴趣的:(第九章 违例差错的控制 2018-11-01)