我有几个我定义和捕获的异常类型(即网络错误,验证错误等) - 现在我基本上想说"抓住我没有预料到的所有其他异常。& #34;这样做的最佳方式是什么?
是否仅使用通用Excepion e
?
由于
答案 0 :(得分:7)
我建议编写所有预期的异常,然后使用Exception进行跟踪,例如
select *
from t1 left join t2 on t1.t1_id = t2.t1_id
where t2.t1_id is null
这将帮助您对您期望的个别异常采取行动,最后,当您获得异常时,您可以一般地处理它。因为,Exception类位于所有异常的顶部,所以这需要在最后。一般规则是,当你在列表中,层次结构走向顶部
答案 1 :(得分:0)
异常是应该合理捕获的“最大”异常类型;因为它涵盖了任何不是 Error 的内容。
但请注意:根据您的具体情况,捕捉例外仍然是不好的做法。这样做通常表示两件事之一:
两种选择;这是要避免的事情!
换句话说:捕获异常是您通常只在非常高的级别上执行的操作 - 应用程序中的较低级别应该确切地知道哪些异常来自较低级别;并且只抓住那些。如果有的话,你真的只想在例外中有一个捕获(在“远处外部”)。因为:你可以在catch块中做唯一的事情 - 一些日志记录,以及给用户的错误信息。
答案 2 :(得分:-1)
为了获得最佳实践,不应该捕获,处理或抛出不扩展RuntimeException的异常。还有setUncaughtExceptionHandler,可以在java.lang.Thread
中设置,您可以将其用作“全部”'