欢迎访问宙启技术站
智能推送

Java中的异常处理函数及其用法(try、catch、finally、throw、throws等)

发布时间:2023-07-01 13:12:32

Java中的异常处理函数主要有try、catch、finally、throw和throws。

try语句块用于包含可能抛出异常的代码块。在try语句块中,如果任何地方发生了异常,程序就会立即跳转到catch语句块中。

catch语句块用于捕获并处理异常。在catch语句块中,我们可以定义一些处理异常的代码逻辑。catch语句块可以捕获多种类型的异常,可以通过多个catch来捕获不同类型的异常。

finally语句块用于定义在无论是否发生异常时都要执行的代码块。无论是否发生异常,finally语句块中的代码都会被执行。通常在finally语句块中进行资源的释放。

throw关键字用于手动抛出异常。我们可以使用throw关键字将异常抛出给上层调用者。抛出的异常可以是Java中的内置异常类,也可以是自定义的异常类。

throws关键字用于在方法声明中声明可能抛出的异常。它允许方法抛出异常,并将异常传递给调用该方法的地方。如果一个方法使用了throws关键字,那么方法的调用者必须要进行异常处理或者也使用throws关键字进行声明。

下面是一个示例代码,展示了异常处理函数的用法:

public class ExceptionExample {
  public static void main(String[] args) {
    try {
      // 可能抛出异常的代码
      int[] arr = {1, 2, 3};
      System.out.println(arr[3]); // 抛出ArrayIndexOutOfBoundsException异常
    } catch (ArrayIndexOutOfBoundsException e) {
      // 处理异常的代码
      System.out.println("数组越界异常");
    } finally {
      // 无论是否发生异常都会执行的代码
      System.out.println("执行finally语句块");
    }
  
    try {
      // 抛出自定义异常
      throw new MyException("自定义异常");
    } catch (MyException e) {
      // 处理自定义异常
      System.out.println(e.getMessage());
    }
  
    try {
      // 调用可能抛出异常的方法
      method1();
    } catch (Exception e) {
      // 处理异常
      System.out.println(e.getMessage());
    }
  }
  
  public static void method1() throws Exception {
    // 抛出异常
    throw new Exception("抛出异常");
  }
  
  static class MyException extends Exception {
    public MyException(String message) {
      super(message);
    }
  }
}

在上述示例代码中, 个try语句块中发生了数组越界异常,然后进入到对应的catch语句块中进行处理,最后执行finally语句块中的代码。

第二个try语句块中使用throw关键字手动抛出了自定义异常,然后通过catch语句块进行处理。

第三个try语句块中调用了可能抛出异常的方法method1,由于method1方法使用了throws关键字声明可能抛出的异常,在方法的调用处使用catch语句块进行异常处理。