如何在catch块中区分不同类型的异常

avatar
作者
筋斗云
阅读量:0

在Java中,要在一个catch块中区分不同类型的异常,你可以使用多个catch块来捕获特定类型的异常

public class Main {     public static void main(String[] args) {         try {             // 这里写可能会抛出异常的代码             int result = riskyOperation();         } catch (ArithmeticException e) {             // 处理算术异常(例如除数为零)             System.out.println("发生了算术异常: " + e.getMessage());         } catch (NullPointerException e) {             // 处理空指针异常             System.out.println("发生了空指针异常: " + e.getMessage());         } catch (Exception e) {             // 处理其他未知异常             System.out.println("发生了未知异常: " + e.getMessage());         }     }      public static int riskyOperation() {         // 这里模拟一个可能会抛出异常的方法         int a = 10;         int b = 0;         return a / b; // 这将抛出一个ArithmeticException(算术异常)     } } 

在这个示例中,我们首先尝试执行riskyOperation()方法。如果该方法抛出一个异常,程序将进入相应的catch块。我们分别为ArithmeticExceptionNullPointerException提供了catch块。如果抛出的异常与这两种类型不匹配,它将被第三个catch块捕获,该块捕获所有其他Exception类型。

注意:在实践中,您应该尽量捕获更具体的异常类型,而不是捕获通用的Exception类型,因为这样可以让您更准确地处理不同类型的异常。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!