更新时间:2022年10月20日13时46分 来源:传智教育 浏览次数:
在文件4-24中,由于发生了异常导致程序立即终止,因此程序无法继续向下执行。为了解决异常,Java提供了对异常进行处理的方式——异常捕获。异常捕获使用try...cathch语句实现,try...cathch具体语法格式如下:
try{ //程序代码块 }catch (ExceptionType (Exception类及其子类) e) { //对ExceptionType的处理 }
上述语法格式中,在try代码块中编写可能发生异常的Java语句,在catch代码块中编写针对异常进行处理的代码。当try代码块中的程序发生了异常,系统会将异常的信息封装成一个异常对象,并将这个对象传递给catch代码块进行处理。catch代码块需要一个参数指明它所能接收的异常类型,这个参数的类型必须是Exception类或其子类。
下面使用try...catch语句对文件4-24中出现的异常进行捕获,如文件4-25所示。
文件4-25 Example25.java
public class Example25 { public static void main (String[] args) { // 下面的代码定义了一个try...catch语句用于捕获异常 try { int result = divide (4, 0); //调用divide()方法 System.out.println (result); }catch (Exception e) { //对异常进行处理 System.out.println ("捕获的异常信息为: " + e.getMessage ()); } System.out.println ("程序继续向下执行..."); } //下面的方法实现了两个整数相除 public static int divide (int x, int y) { int result = x / y; //定义一个变量result记录两个数相除的结果 return result; //将结果返回 } }
在文件4-25中,第4~9行代码是对可能发生异常的代码用try...catch语句进行了处理。在try代码块中发生除0异常外,程序会通过catch语句捕获异常,第8行代码在catch语句中通过调用Exception对象的getMessage()方法,返回异常信息“/by zero”。catch代码块对异常处理完毕,程序仍会向下执行,而不会终止程序。
需要注意的是,在try代码块中,发生异常语句后面的代码是不会被执行的,如文件4-25中第6行代码的打印语句就没有执行。
在程序中,有时候会希望有些语句无论程序是否发生异常都要执行,这时就可以在try...catch语句后加一个finally代码块。