Java的基本理念是“结构不佳的代码是不能运行的”。
永远不必为清理前一个异常对象而担心,或者说为异常对象的清理而担心。因为它们都是使用new在堆上创建的对象,所以垃圾回收机制会自动把它们清理掉。
Throwable对象可以分为两种类型(指从Throwable继承而得到的类型):Error用来编译时和系统错误(除特殊情况外,一般不用你关心);Exception是可以被抛出的基本类型,在Java类库、用户方法以及运行时故障中都可能抛出Exception异常。
请记住:只能在代码中忽略RuntimeException(及其子类)类型的异常,其它类型异常的处理都是由编译器强制实施的。
抛出异常的时候,异常处理系统会按照代码的书写顺序找出“最近”的处理程序。找到匹配的处理程序之后,它就认为异常将得到处理,然后就不在继续查找。
异常处理的一个重要原则是“只有在你知道如何处理的情况下才捕获异常”。实际上,异常处理的一个重要目标就是把错误处理的代码同错误发生的地点相分离。