为了账号安全,请及时绑定邮箱和手机立即绑定

为什么Catch(Exception)几乎总是一个坏主意?

为什么Catch(Exception)几乎总是一个坏主意?

芜湖不芜 2019-08-27 17:31:38
为什么Catch(Exception)几乎总是一个坏主意?为什么catch(Exception)几乎总是一个坏主意?
查看完整描述

3 回答

?
青春有我

TA贡献1784条经验 获得超8个赞

因为当你捕获异常时,你应该正确处理它。而且您不能指望在代码中处理所有类型的异常。此外,当您捕获所有异常时,您可能会遇到一个异常,该异常无法处理并阻止堆栈中的代码正确处理它。

一般原则是捕捉最具体的类型。


查看完整回答
反对 回复 2019-08-27
?
慕运维8079593

TA贡献1876条经验 获得超5个赞

简短的故事:它被称为bug掩蔽。如果你有一段代码不能正常工作并抛出异常(或者你将错误的输入传递给那段代码)而你只是通过捕获所有可能的异常而使你的眼睛失明,那么你实际上永远不会发现错误并修复它。


查看完整回答
反对 回复 2019-08-27
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

因为你真的不知道为什么会发生异常,并且有几个例外需要非常特殊的汽车才能正确处理(如果可能的话),例如OutOfMemoryException和类似的低级系统异常。

因此,您应该只捕获异常:

  • 你知道如何处理它(例如FileNotFoundException等)

  • 之后你会重新提升它们(例如进行失败后清理)

  • 何时需要将异常传输到另一个线程


查看完整回答
反对 回复 2019-08-27
  • 3 回答
  • 0 关注
  • 432 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信