Java - 捕获所有其他意外的异常

时间:2016-09-26 17:11:23

标签: java exception exception-handling

我有几个我定义和捕获的异常类型(即网络错误,验证错误等) - 现在我基本上想说"抓住我没有预料到的所有其他异常。& #34;这样做的最佳方式是什么?

是否仅使用通用Excepion e

由于

3 个答案:

答案 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 的内容。

但请注意:根据您的具体情况,捕捉例外仍然是不好的做法。这样做通常表示两件事之一:

  1. 您不知道您的代码在做什么
  2. 你的代码非常复杂,以至于你真的不知道它会发生什么。
  3. 两种选择;这是要避免的事情!

    换句话说:捕获异常是您通常只在非常高的级别上执行的操作 - 应用程序中的较低级别应该确切地知道哪些异常来自较低级别;并且只抓住那些。如果有的话,你真的只想在例外中有一个捕获(在“远处外部”)。因为:你可以在catch块中做唯一的事情 - 一些日志记录,以及给用户的错误信息。

答案 2 :(得分:-1)

为了获得最佳实践,不应该捕获,处理或抛出不扩展RuntimeException的异常。还有setUncaughtExceptionHandler,可以在java.lang.Thread中设置,您可以将其用作“全部”'