在使用 java 编程时,我作为程序员是否应该考虑捕获 RuntimeExceptions ?
问问题
266 次
5 回答
8
您捕获 RuntimeException 的原因与捕获任何异常的原因相同:您计划对它做一些事情。也许您可以纠正导致异常的任何原因。也许您只是想用不同的异常类型重新抛出。
然而,捕捉并忽略任何异常是非常糟糕的做法。
于 2012-07-16T14:56:59.143 回答
2
这是我能想到的。
- 如果您想在出现问题时向最终用户显示一条好消息,请捕获RuntimeException并记录它。然后在屏幕上显示一些好消息而不是爆破错误。
- 要将特定于框架的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 回答