您是否应该捕获主方法中的所有异常

时间:2013-06-21 22:31:45

标签: java exception-handling

把所有东西都抓到主要位置是否正确?如果没有,为什么?

public static void main(String[] args) {

    try {
        // A lot
        // of
        // calls
    } catch (Exception e) {
        e.printStackTrace();
    }           
}   

5 个答案:

答案 0 :(得分:1)

通常情况下,最好将IMO分开,这样即使你最终处理这些,也可以单独处理它们。当你回到你的代码时,也更容易看出风险是什么, catch 是什么。只是一个简单的例子:

try {

} catch (URISyntaxException e) {
    e.printStackTrace();
} catch (IOException e) {
    request.abort();
} finally {
    client.close();
}

答案 1 :(得分:1)

如果您所做的只是致电e.printStacktrace (),我认为这不值得。无论如何,JVM会做类似的事情。但我相信如果输出有意义的信息是值得的; stacktraces只对程序员有意义。

答案 2 :(得分:0)

它将捕获Exception块中的每个try{},它可能无法捕获内部代码中是否有另一个捕获

答案 3 :(得分:0)

这取决于。如果您只需要在出现异常时显示一些错误消息,我猜它没问题。但是如果您发现需要根据异常类型进行某种处理,那么您最好在内部代码中尝试捕获。

答案 4 :(得分:0)

在你的情况下它是没有意义的,因为你没有处理你捕获的异常,只是打印它。如果声明main throws checked_exceptions_your_code_throws_list,您将获得相同的结果(JVM将打印异常)和更清晰的代码。如果您的代码没有抛出任何检查异常,那么根本不要声明任何异常。

相关问题