在某些场景下,我们可能需要捕获某个异常,并根据业务需求抛出不同的异常。这个时候,可以使用try-catch块,并在catch块中根据条件抛出不同类型的异常。下面是一个简单的示例代码:
try {
// 可能会抛出异常的代码段
int a = 10 / 0;
} catch (ArithmeticException e) {
if (e.getMessage().equals("/ by zero")) {
throw new CustomException("除数不能为0");
} else {
throw new AnotherCustomException("除法运算错误", e);
}
}
在上面的代码中,我们首先尝试执行一个除法运算,由于除数为0,会抛出一个ArithmeticException异常。在catch块中,我们根据异常的getMessage()方法的返回值来判断异常类型,并根据业务需求抛出自定义异常CustomException或AnotherCustomException。
需要注意的是,抛出的自定义异常需要在方法签名中声明,并在异常后面使用throws关键字。例如:
public void someMethod() throws CustomException, AnotherCustomException {
//方法体
}
上一篇:捕获异常并尽早抛出的好处是什么?