6

在使用 java 编程时,我作为程序员是否应该考虑捕获 RuntimeExceptions ?

4

5 回答 5

8

您捕获 RuntimeException 的原因与捕获任何异常的原因相同:您计划对它做一些事情。也许您可以纠正导致异常的任何原因。也许您只是想用不同的异常类型重新抛出。

然而,捕捉并忽略任何异常是非常糟糕的做法。

于 2012-07-16T14:56:59.143 回答
2

这是我能想到的。

  1. 如果您想在出现问题时向最终用户显示一条好消息,请捕获RuntimeException并记录它。然后在屏幕上显示一些好消息而不是爆破错误。
  2. 要将特定于框架的CheckedExceptions包装到特定于应用程序的RuntimeExceptions中。最好使用RuntimeException作为您的自定义异常,如此所述。
于 2012-07-16T14:59:40.850 回答
0

如果要向用户显示自定义消息,则基于用户验证,然后选择RuntimeException.

将您的自定义消息包装起来,然后将其扔掉。

throw new RuntimeException("Invalid userName/Password !");
于 2012-07-16T15:01:54.237 回答
0

基本上,您唯一想抓住一个的时间是当您不能让您的应用程序崩溃时。这是一篇很好的文章,更详细地描述了这一点,但这里引用了一个总结:

"If a client can reasonably be expected to recover from an exception, make it a 
checked exception. If a client cannot do anything to recover from the exception,
make it an unchecked exception".  

由于未经检查的异常基本上只是代码中的错误,并且实际上应该只在对它们无能为力的情况下抛出,所以您想要捕获的唯一实时是当您不能让您的应用程序崩溃时。

于 2012-07-16T15:16:07.927 回答
-1

是的:只要你能并且想从他们那里恢复过来。

许多常见的异常都继承自RuntimeException,并且根据特定情况,每个异常可能会或可能不会恢复。类RuntimeException本身并不意味着必须或不能捕获异常。

例如,您可能有一个IllegalArgumentException在某些输入上引发的库方法。如果适用于您的程序,您可以捕获此异常并以某种方式恢复,例如尝试不同的输入,或向用户解释操作无法继续的原因。

于 2012-07-16T15:01:32.720 回答