Java通 过API中Throwable类的众多子类描述各种不同的异常,有两个重要的子类:Exception(异常)和 Error(错误),二者都是 Java 异常处理的重要子类,各自都包含大量子类。 在 Java 应用程序中,异常处理机制为:抛出异常,捕捉异常。一个方法所能捕捉的异常,一定是Java代码在某处所抛出的异常。简单地说,异常总是先被抛出,后被捕捉的。无论是谁,都可以通过Java的throw语句抛出异常。
异常抛出的过程:
条件成立时引发ArithmeticException异常,创建 ArithmeticException异常对象,并由throw语句将异常抛给Java运行时系统,由系统寻找匹配的异常处理器catch并运行相应异 常处理代码。
有些是JVM自动识别出异常,运行时异常将由运行时系统自动抛出,不需要使用throw语句。无需开发者自己去定义条件!
1. 使用 try 和 catch 关键字可以捕获异常
try{ // 程序代码}catch(ExceptionName e1) //ExceptionName为各种各样的异常类,可以是Java 内置异常类也可以是自定义异常类{ //Catch 块}
2. throws/throw 关键字
3. 在方法签名后抛出throw异常是自己没能力或者不想处理异常,抛出去给它的调用者去帮忙处理异常
import java.lang.Exception; public class TestException { static void pop() throws NegativeArraySizeException { // 定义方法并抛出NegativeArraySizeException异常 int[] arr = new int[-3]; // 创建数组 } public static void main(String[] args) { // 主方法 try { // try语句处理异常信息 pop(); // 调用pop()方法 } catch (NegativeArraySizeException e) { System.out.println("pop()方法抛出的异常");// 输出异常信息 } } }
4. 自定义异常
用户自定义异常类,只需继承Exception类即可。
在程序中使用自定义异常类,大体可分为以下几个步骤。 (1)创建自定义异常类。 (2)在方法中通过throw关键字抛出异常对象。 (3)如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。 (4)在出现异常方法的调用者中捕获并处理异常。