Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在try-catch块中返回。对吗?_Java_Exception_Try Catch - Fatal编程技术网

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;
    }
}
你失去了你的例外。这是一个糟糕的做法,因为如果出了问题,你甚至无法理解出了什么问题。 更好的方法

  • 将错误消息打印到日志
  • 重新显示此异常或自定义异常,并在下一级别处理它
请注意,您说我可以用这种方式“处理”异常,但您并没有真正用任何方式处理它……请注意,您说我可以用这种方式“处理”异常,但您并没有真正用任何方式处理它……不过,请注意,Ernest a)包括一个
logTimeout(ex)
和b)返回另一个结果。完全忽略异常很少是一个好主意(但是,是的,您可以)。不过,请注意,Ernest a)包含一个
logTimeout(ex)
,b)返回另一个结果。完全忽略异常很少是一个好主意(但是,是的,你可以)。