Java 在try-catch块中返回。对吗?
有可能做出这样的事情吗Java 在try-catch块中返回。对吗?,java,exception,try-catch,Java,Exception,Try Catch,有可能做出这样的事情吗 try { ... } catch (exception){ return; // this is most important thing here. In catch block only "return" } 我可以这样处理异常吗?只使用“return;”? 它工作正常,但我想知道它是否正确?这样您就忽略了异常,它真的是您想要的吗?这一切都取决于您的上下文-这样做可能是安全的(我对此表示怀疑,但嘿,这是您的代码)。通常,当某些异常发生时,您应该做出反应
try {
...
} catch (exception){
return; // this is most important thing here. In catch block only "return"
}
我可以这样处理异常吗?只使用“return;”?
它工作正常,但我想知道它是否正确?这样您就忽略了
异常
,它真的是您想要的吗?这一切都取决于您的上下文-这样做可能是安全的(我对此表示怀疑,但嘿,这是您的代码)。通常,当某些异常发生时,您应该做出反应,而不是简单地返回,而是记录、默认(很少是一个好的选项)、重试等。这样您就忽略了异常,它真的是您想要的吗?这一切都取决于您的上下文-这样做可能是安全的(我对此表示怀疑,但嘿,这是您的代码)。通常,当出现一些异常时,您应该做出反应,而不是简单地返回,而是记录、默认(很少是一个好的选择)、重试等等。是的,这实际上是一个有效的用例。在catch块中返回的原因有很多,其中之一是返回默认值:
try {
return service.getData();
} catch (SocketTimeoutException ex) {
logTimeout(ex);
return getCachedData();
}
是的,这实际上是一个有效的用例。在catch块中返回的原因有很多,其中之一是返回默认值:
try {
return service.getData();
} catch (SocketTimeoutException ex) {
logTimeout(ex);
return getCachedData();
}
这是正确的语法,但根据java编码标准,我们不能吞下异常,而必须在catch块中处理它们或使用适当的消息重新播放它这是正确的语法,但根据java编码标准,如果您执行以下操作,我们不能吞下异常,而必须在catch块中处理它们或使用适当的消息重新播放它这个
public void someMethod(){
try{
...
} catch (Exception e) {
return;
}
}
你失去了你的例外。这是一个糟糕的做法,因为如果出了问题,你甚至无法理解出了什么问题。
更好的方法
- 将错误消息打印到日志
- 重新显示此异常或自定义异常,并在下一级别处理它
public void someMethod(){
try{
...
} catch (Exception e) {
return;
}
}
你失去了你的例外。这是一个糟糕的做法,因为如果出了问题,你甚至无法理解出了什么问题。
更好的方法
- 将错误消息打印到日志
- 重新显示此异常或自定义异常,并在下一级别处理它
logTimeout(ex)
和b)返回另一个结果。完全忽略异常很少是一个好主意(但是,是的,您可以)。不过,请注意,Ernest a)包含一个logTimeout(ex)
,b)返回另一个结果。完全忽略异常很少是一个好主意(但是,是的,你可以)。