📅  最后修改于: 2023-12-03 15:09:48.484000             🧑  作者: Mango
在程序中,我们经常会遇到各种各样的错误,比如输入输出错误,空指针异常等等。这些错误统称为异常。为了避免程序出现异常后直接崩溃,我们需要采取一些措施,让程序继续运行下去。这就是异常处理。
Java中,我们使用 try-catch
语句来捕获可能出现异常的代码块。try代码块中写我们要执行的代码,catch代码块则是在try代码块中抛出异常后要执行的代码,用来处理异常情况。
下面是捕获空指针异常的例子:
try {
String str = null;
System.out.println(str.length());
} catch (NullPointerException e) {
System.out.println("捕获到了空指针异常!");
} finally {
System.out.println("无论异常是否发生都会执行此代码块!");
}
在上面这个例子中,由于 str
是一个空指针,直接调用 str.length()
就会报错。但是我们使用了 try-catch
语句来捕获这个错误,并输出了一条提示信息。
需要注意的是,在 catch
代码块中,我们使用了一个参数 e
,用来表示捕获到的异常。我们可以通过 e
来获取异常的一些信息,比如异常的类型、异常的信息等等。
当我们捕获到异常后,我们可以使用 throw
关键字来重新提示这个异常,让上级方法或者调用此方法的代码块来处理这个异常。
下面是一个简单的例子:
public void divide(int a, int b) throws ArithmeticException {
if (b == 0) {
throw new ArithmeticException("被除数不能为0!");
} else {
System.out.println(a / b);
}
}
在上面这个例子中,我们定义了一个方法 divide(int a, int b)
,用来计算 a
除以 b
的值。但是当 b
为0时,我们不希望程序报错,而是重新提示一个异常,让上级方法来处理这个异常。
在方法中,我们首先判断 b
是否为0,如果为0就抛出一个 ArithmeticException
异常。如果不为0,就执行处理代码。
异常处理是Java中一个非常重要的概念,它可以让我们的程序更加健壮,减少因为错误而导致的崩溃。当出现异常时,我们可以使用 try-catch
语句来捕获异常和处理异常,或者使用 throw
来重新提示异常,让上级方法来处理异常。