gpt4 book ai didi

java - 为什么一个方法需要在 catch 中返回语句,即使 catch 重新抛出异常

转载 作者:行者123 更新时间:2023-12-01 07:51:03 24 4
gpt4 key购买 nike

我编写了一个在 try 语句中返回一些值的方法。在 catch 内部,我调用handleException,它将具有理解异常并重新抛出新异常的转换逻辑。这里handleException总是抛出异常,但getXYZ()仍然给出编译时错误,需要返回语句。我没有处理异常,我只是抛出新的异常,那么为什么该方法需要 return 语句。

public String getXYZ(String input) {
try {
return getFromDAO(input);
} catch (Exception e) {
handleException(e);
}
}
private void handleException(Exception e) {
try {
throw e;
} catch(SomeException se) {
throw new MyRuntimeException("MyException message", se);
} catch(SomeOtherException soe) {
throw new MyRuntimeException("MyException message", soe);
}
}

此方法的另一个版本可以编译。

public String getXYZ(String input) {
try {
return getFromDAO(input);
} catch (Exception e) {
throw e;
}
}

最佳答案

您没有在 catch block 中抛出任何内容,您正在调用句柄函数,这最终将导致抛出新的异常,但 getXYZ 中的实际代码code> 正在 catch 中执行函数调用。如果您将 handleException 更改为稍后在某些情况下不抛出异常,那么 getXYZ 会返回什么?

关于java - 为什么一个方法需要在 catch 中返回语句,即使 catch 重新抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37747651/

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