如果在C#中的表单上发生异常,如何正常关闭表单

Aus*_*tin 2 c# forms exception-handling

我的位置我有一个大型用户应用程序,有很多表单,我正在寻找一种方法来关闭单个表单,如果由于该表单上捕获的某些逻辑而发生异常.

现在我正在遵循"不要在任何地方写try/catch以捕捉愚蠢的错误"的原则,它确实使我的代码更清晰,但是当我有NullPointerException时会导致整个应用程序崩溃.

最好的解决方案是一个"本地错误处理程序",每个表单都会收集该级别的任何异常,并在那里终止表单而不是冒泡并终止整个应用程序.

有人有主意吗?

Ed *_* S. 5

但是当我有NullPointerException时,会导致整个应用程序崩溃.

然后你需要修复它NullReferenceException(s),而不是想出一些在全局级别捕获异常的复杂机制并回溯以找到导致异常的形式.您应该简单地(尝试)设计您的代码,以便不可能发生空引用,或者如果它们这样做,它可以以优雅的方式处理.

如果您有导致崩溃的方案,请修复它,不要忽略它.您如何保证关闭表单会使您的程序现在和将来保持一致状态?(提示:你不能)