Bootstrap

18《重学JAVA》--JAVA异常(二)

一、异常关键字

使用try和catch关键字可以捕获异常。try/catch代码块放在异常可能发生的地方。

Catch语句包含要捕获异常类型的声明。当保护代码块中发生一个异常时,try后面的catch块就会被检查。

如果发生的异常包含在catch块中,异常会被传递到该catch块,这和传递一个参数到方法是一样。

 

Try:try代码块中应该包含执行过程中可能会发生异常的语句。一条语句是否有可能发生异常,这要看语句中调用的方法。用于监听。将要被监听的代码(可能抛出异常的代码)放在try语句块之内,当try大括号内内发生异常时,异常就被抛出。

 

Catch:每个try代码块可以伴随一个或多个catch代码块,用于处理try代码块中所可能发生的多种异常,用于捕获异常。

 

Finally:Finally语句块总是会被执行。它主要用于回收在try块里打开的物力资源(如数据库连接、网络连接和磁盘文件)。只有finally块,执行完成之后,才会回来执行try或者catch块中的return或者throw语句,如果finally中使用了return或者throw等终止方法的语句,则就不会跳回执行,JVM会直接停止。

 

Throw:如果一个方法没有捕获到一个检查性异常,那么该方法必须使用throws关键字来声明。throws关键字放在方法签名的尾部。也可以使用throw关键字抛出一个异常,无论它是新实例化的还是刚捕获到的。

二、异常处理

在JAVA程序中你可以自定义异常。编写自己的异常类时需要记住下面的几点。

所有异常都必须是Throwable的子类,因为Throwable是所有异常的父类。

如果希望写一个检查性异常,则需要继承Exception类。

如果你想写一个运行时异常,那么需要继承RuntimeException类。