使用异常或使用多个try catch java [关闭]

问题描述 投票:0回答:2

我只是编写代码并想知道使用异常类来捕获异常或使用多种类型的try-catch是否合适。

try{
    // some error-prone code
   }catch(Exception e){
   }

要么,

try{
    // some error-prone code
   }catch(NullPointerException n){
   }catch(ArrayOutOfBoundException a){
   } ..... etc
java exception using
2个回答
1
投票

这取决于您将如何处理异常。如果每个例外都有特定的事情要做,那么你可以使用多个try catch。如果不是,您可以使用通用异常。此外,如果您知道代码可能抛出的异常类型,那么只需使用该特定异常即可。


0
投票

您应该只捕获您知道如何正确处理的异常;示例包括IOException,您可以在其中执行重试操作,返回一些默认值或重新抛出错误等操作;和NumberFormatException,你试图将用户输入读作数字并发现它是垃圾,所以你可以要求用户再试一次。

几乎在所有情况下,你实际上并不知道对“任何错误”的正确反应是什么,并且在许多情况下(例如,大多数未经检查的异常),你通过捕获Exception所做的唯一事情是掩盖一些潜在的需要解决的问题。通常,对于通用未知异常可接受的唯一响应是“写入日志消息并中止当前操作”,无论“当前操作”的任何定义是否适用(可能包括回滚事务和返回HTTP 503状态)码)。

在实际应用程序中,这个最后的catch Exception由框架代码(例如Spring或Jersey)处理,并执行这些广泛的清理操作。如果你的代码不能做得更好(通常需要知道具体发生了什么,而不仅仅是“异常”),那么应该让异常传播并使用标准的错误处理程序。

© www.soinside.com 2019 - 2024. All rights reserved.