c# - 如果在 C# 中该窗体发生异常,如何优雅地关闭该窗体

标签 c# forms exception

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

现在我遵循“不要到处写 try/catch 来捕获愚蠢的错误”的原则,它确实使我的代码更清晰,但当我遇到 NullPointerException 时会导致整个应用程序崩溃。

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

有人有什么想法吗?

最佳答案

but causes crashes the entire app when I have a NullPointerException.

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

如果您遇到导致崩溃的情况,请修复它,不要忽略它。您如何保证关闭表单将使您的程序无论现在还是将来都处于一致的状态? (提示:你不能)

关于c# - 如果在 C# 中该窗体发生异常,如何优雅地关闭该窗体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7352915/

相关文章:

c++ - 将 INT3 中断留给 visual studio 上应用程序的异常处理程序

c# - 在 C# 中记录异常

c# - 向行 ItemArray 添加值

c# - Y型任务执行

c# - 如何将 ping 变量转换为 int?

javascript - 谷歌分析事件跟踪 : tracking links within a drop-down form

php - 在坚持 Symfony2 形式和学说后重定向

c# - 将 JSON 数据发布到服务器 (HTTP/HTTPS) 时发生 StackOverflowException

html - 为什么浏览器不要求记住密码?

java - Spring Data REST @ExceptionHandler