gpt4 book ai didi

java - 如果两个异常都有不同的条件,那么在一个方法中抛出两次是否违反良好实践?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:08:15 25 4
gpt4 key购买 nike

假设我们有如下一些方法:

public static void sampleExceptionProblem(String a, String b) throws SomeException {
if (a == null){
throw new SomeException("string a is null");
}

if (b == null){
throw new SomeException("string b is null");
}
}

我的理解是,一旦抛出异常,代码就会停止执行,异常会被处理。因此,假设上面的代码将检查第一个 if 语句是否正确,如果该语句通过但第二个语句失败,它将处理该异常。并且不存在需要同时处理两个异常的问题吗?

最佳答案

您的方法将抛出不超过 1 个异常,并且不进行任何异常处理。如果 a == null 它会在第一个 if block 中抛出异常,并且永远不会到达第二个 block 。如果 a != nullb == null 它会从第二个 if block 中抛出异常。

“处理”需要在某处有一个 catch 语句。你的代码片段没有,所以没有处理。这不一定是个问题,只要调用堆栈中更高层的东西最终捕获并处理即可。

此外,对于 null 值,您通常会抛出 NullPointerException 而不是自定义异常,但我认为这只是方便您创建一个快速示例。

关于java - 如果两个异常都有不同的条件,那么在一个方法中抛出两次是否违反良好实践?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32725910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com