【发布时间】:2008-09-22 12:48:47
【问题描述】:
我一直听到这个
catch (Exception ex)
这是一种不好的做法,但是,我经常在事件处理程序中使用它,例如,操作可能会进入网络,从而可能导致许多不同类型的故障。在这种情况下,我会捕获所有异常并在消息框中向用户显示错误消息。
这是否被认为是不好的做法?对于这个例外,我无能为力:我不希望它停止应用程序,用户需要知道发生了什么,而且我处于代码的顶层。我还应该做什么?
编辑:
人们说我应该查看调用堆栈并专门处理错误,因为例如无法有意义地处理 StackOverflow 异常。但是,停止该过程是最糟糕的结果,我想不惜一切代价阻止这种情况。如果我无法处理 StackOverflow,那就这样吧 - 结果不会比不捕获异常更糟糕,而且在 99% 的情况下,就我而言,通知用户是最不坏的选择。
此外,尽管我尽最大努力找出所有可能引发的异常,但在大型代码库中,我很可能会遗漏一些。而对于他们中的大多数人来说,最好的防御仍然是通知用户。
【问题讨论】: