Skip to content

异常处理

向上抛出

声明异常以便抛出

java
if (age < 0) {
    throw new IllegalArgumentException("年龄不能为负数");
}

异常不在当前处理,向上抛出交给调用者

java
public void readFile() throws IOException {
    // 不处理,交给调用者
}

main方法可以继续向上抛出交给JVM处理,JVM遇到异常将会打印至控制台,并结束JVM的运行

捕获

try-catch

java
try {
    int a = 10 / 0;
} catch (ArithmeticException e) {
    System.out.println("发生异常:" + e.getMessage());
}

多个 catch

多个catch中,只要捕捉到异常,整个try-catch将结束,因此建议从捕捉异常的顺序从小写到大

java
try {
    String s = null;
    s.length();
} catch (NullPointerException e) {
    System.out.println("空指针");
} catch (Exception e) {
    System.out.println("其他异常");
}

finally

一定会执行的代码

java
try {
    System.out.println("执行");
} finally {
    System.out.println("一定执行");
}

try-with-resources