标签:
异常处理格式
try 关键字之后的程序块就是异常的监控区域。
多个 catch 关键字后面的程序块,则是针对每个要捕获的异常,所准备的相应处理程序。
finally 关键字之后的程序块,无论是否出现异常,总会被执行。 finally 关键字在 try...catch 机制中并不是必须的。
JAVA虽然提供了大量的异常类,但也不可能预见所有的异常情况。所以可以自己定义异常类来表示程序可能会遇到的特定问题。
要自定义异常类,必须从已有的异常类继承,最好选择功能相近的异常类继承。
在定义一个方法时可以使用 throws 关键字声明,使用 throws 声明的方法表示此方法不处理异常,而交给方法的调用处进行处理。
需要注意的是,如果异常类类型不是运行时异常类型,那么在调用这个方法时,不管是否有问题,都必须使用 try...catch 进行异常的捕获与处理。
和 throws 不同,throw 关键字表示主动地抛出一个异常,抛出时直接抛出异常类的实例化对象即可。
JAVA中所有的异常类都继承自 Throwable 类。
异常可分为两大类:Exception 和 Error。
Exception:一般指的是程序中出现的问题,可以通过 try...catch 处理。
Error:一般指的是JVM错误,程序无法处理。
Exception还可以再继续细分为运行时异常(RuntimeException)和非运行时异常。
运行时异常可以不使用 try...catch 进行处理。
请看以下代码:
执行以上代码时,再第二次调用Integer.parseIn()时会出现异常。我们看一下这个方法的定义:
这里使用了 throws 关键字,但是在实际调用时并没有使用 try...catch,编译器也没有报错。
这是因为所有继承自 RuntimeException 的类都可以不使用 try...catch 进行处理。在这种情况下,如果产生异常,将由 JVM 进行处理,此时肯定会中断程序。
所以,如果想要程序在出错时仍可以继续执行,最好还是使用 try...catch 的异常处理机制来处理。
《Thinking in Java》
《JAVA开发实战宝典》
标签:
原文地址:http://www.cnblogs.com/jingmoxukong/p/4288249.html