1. 异常抛出后,有几件事会随之发生。首先,使用new在堆上创建异常对象。然后,当前的执行路径被终止,并且从当前环境中弹出对异常对象的引用。此时,异常处理机制接管程序,并开始寻找一个恰当的地方来继续执行程序。这个恰当的地方就是异常处理程序。
2. 所有标准异常类都有两个构造器,一个是缺省构造器,另一个是接受字符串的构造器。
3. 异常处理的一个好处是,使你得以先在一个地方专注于正在解决的问题,然后在别的地方处理这些代码中的错误。
4. 异常处理理论的两种基本模型:终止模型(termination)和恢复模型(resumption)。Java和C++都使用前者。不过后者也可以实现,如把try块放入while中,不断进入try块,直到得到满意结果。
5. 创建自定义异常时,建议把信息写到System.err,因为System.out可能会被重定向。
6. Throwable.printStackTrace方法可以输出从方法调用处直到异常抛出处的方法调用序列,使用时可以不带参数,或者传递一个PrintStream或PringWriter类的引用。