我们已经为大家介绍过java异常处理的原因,今天继续为大家讲述下java怎么捕获异常,以及通过图表为大家描述Throwable类的方法是怎样的。
首先,应该怎么捕获异常呢?
我们可以使用try和catch关键字来捕获异常。try/catch代码块放在异常可能发生的地方。try/catch代码块中的代码称为保护代码,使用try/catch的语法如下:
try { // 程序代码 } catch (ExceptionName e1) { //Catch 块 }
另外,Catch语句包含要捕获异常类型的声明。当保护代码块中发生一个异常时,try后面的catch块就会被检查。
但是如果发生的异常包含在catch块中,那么异常会被传递到该catch块,这和传递一个参数到方法是一样的。
接下来为大家展示一个实例:
// 文件名 : ExcepTest.java import java.io.*; public class ExcepTest { public static void main(String args[]) { try { int a[] = new int[2]; System.out.println("Access element three :" + a[3]); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("Exception thrown :" + e); } System.out.println("Out of the block"); } }
上面的例子中声明有两个元素的一个数组,当代码试图访问数组的第三个元素的时候就会抛出一个异常。
运行结果如下:
Exception thrown: java.lang.ArrayIndexOutOfBoundsException: 3 Out of the block
那么我们应该怎样多重捕获呢?
首先,一个try代码块后面跟随多个catch代码块的情况就叫多重捕获。
多重捕获块的语法如下所示:
try { // 程序代码 } catch (异常类型1 异常的变量名1) { // 程序代码 } catch (异常类型2 异常的变量名2) { // 程序代码 } catch (异常类型2 异常的变量名2) { // 程序代码 }
可以看出,上面的代码段包含了3个catch块。可以在try语句后面添加任意数量的catch块。
如果保护代码中发生异常,异常被抛给第一个catch块。如果抛出异常的数据类型与ExceptionType1匹配,它在这里就会被捕获。如果不匹配,它会被传递给第二个catch块。如此,直到异常被捕获或者通过所有的catch块。
实例展示如下:
try { file = new FileInputStream(fileName); x = (byte) file.read(); } catch (FileNotFoundException f) { // Not valid! f.printStackTrace(); return -1; } catch (IOException i) { i.printStackTrace(); return -1; }
接下来通过图表为大家展示Throwable类的方法有哪些。
总而言之,java捕获异常的过程还是比较复杂的,这就需要我们能够熟练地掌握和应用java了。想要了解更多java常见问题,敬请关注奇Q工具网。
推荐阅读: