Java异常之异常机制

    Java异常处理机制依赖5个关键字try,catch,finally,throw,throws。try关键字后跟着可能出现异常的代码块,catch后面对应异常的类型和捕获到异常后处理异常的代码块,finally后的代码块是程序一定会执行的,一般用于回收物理资源,throw用于抛出一个实际的异常,throws作为方法的签名,声明一个方法可能会抛出的异常。

    在一个项目中,最理想的状态,就是项目没有异常,从实际开发来说,就是在程序运行之前,就能检测到所有的异常并处理,但是这是不现实的,因为开发者不可能预知全部错误。所以,从这个角度来说,Java异常机制将异常分为两大类,Runtime异常和Checked异常。Checked异常是指:Java认为这类异常必须在编译阶段处理,如果这类异常不被处理,编译失败。处理方式主要有两种:1.当前方法知道该如何处理异常,那就使用catch关键字捕获异常,处理异常  2.当前方法不知道该如何处理异常,那就使用throws关键字抛出异常。Runtime异常是指:一些异常处理繁琐,来源复杂,例如空指针、数组越界、除数为0等异常,如果对这些异常进行捕获,会导致程序变得复杂,运行效率降低,可读性差。因此,由系统负责检测这类异常。

    一般来说,当程序出现异常时,不管是Runtime异常还是Checked异常,系统自动生成一个异常对象,并提交给Java运行时环境,这个过程称为抛异常。当Java运行时环境收到异常对象时,会寻找能处理该异常的catch块,如果找到了就由catch块来处理,这个过程叫捕获异常;如果找不到合适的catch块,运行时环境就会终止,Java程序就此退出。

猜你喜欢

转载自my.oschina.net/u/3733854/blog/1589444