时间:2010-07-26 13:47:01

标签: language-agnostic exception-handling swallowed-exceptions

20 个答案:

答案 0 :(得分:44)

答案 1 :(得分:24)

答案 2 :(得分:15)

答案 3 :(得分:9)

答案 4 :(得分:7)

答案 5 :(得分:6)

因为必须为演示完成某些事情,所以老板明天会自然地做,并且没有什么比程序崩溃或显示令人讨厌的错误消息更糟糕,而当某些东西不能正常工作时,他总是可以“谈论”。

演示结束后,没有人会改进那些“快速修复”的部分。 ; - )

答案 6 :(得分:5)

答案 7 :(得分:5)

我认为这是因为Java的已检查异常。我个人因为这个而讨厌他们,因为人们往往认为他们需要在任何地方使用异常处理代码。 IMO在99%的代码中你应该把你的异常抛到堆栈而不处理它。如果创建的任何新方法的默认签名都“抛出异常”,我会很高兴,除非我愿意,否则我不必处理异常。

IMO你只需要在两个地方进行异常处理:  1.对于资源清理,例如关闭输入流,数据库连接或删除文件。  2.在堆栈的最顶部,您可以捕获异常并将其记录或显示给用户。

有些地方你真的不需要在catch中做任何事情,比如从Thread.sleep()处理InterruptedException,你应该至少有一个评论来说明你真的不想要那里发生的一切。

答案 8 :(得分:1)

我偶然发现了这个旧线程,并且很惊讶没有看到优秀代码只是简单地吞下异常(有或没有评论)的唯一正当理由。

当您使用不受控制的库和代码编写代码时,通常需要调用方法来获取可能存在或不存在的值,或执行可能不允许的操作。给定的时间点。如果您正在调用的方法如果无法返回有效结果而不是提供控制流替代方法,则抛出异常,那么您将被迫吞下异常,作为该值不可用或无法执行操作的信号。 / p>

优秀的程序员将尽一切努力避免使用异常处理来驱动控制流,除非在真正的故障情况下可能会将用户冒充为错误。然而,优秀的程序员也广泛地重用库和框架以提高效率,并且理解重写库以提供更好的替代方案(如TryGetValue模式)并不总是一种选择。

答案 9 :(得分:1)

答案 10 :(得分:1)

答案 11 :(得分:0)

我们对运行时错误使用例外。由于用户的需求,有时甚至是需求,以及出现问题时发生的此类事情。如果我们想向用户显示错误,可能会引发异常。 例如:-

  1. 当软件运行时,可能会出现错误要求,并且可以通过以下方式解决: 程序本身。因此,在这种情况下,程序员选择使用try语句,并且可能存在软件无法解决的硬件要求,在这种情况下,程序员选择了引发异常的方式来警告用户。

在很多情况下,我们选择引发情况或处理异常情况的途径。

答案 12 :(得分:0)

答案 13 :(得分:0)

答案 14 :(得分:0)

答案 15 :(得分:0)

答案 16 :(得分:-1)

答案 17 :(得分:-2)

答案 18 :(得分:-2)

答案 19 :(得分:-3)

主要是因为他们太累了。他们忘记在某些时候忘记做文件的原因相同。