我的位置是我有一个大型用户应用程序,它有很多表单,我正在寻找一种方法来关闭单个表单,如果由于该表单上捕获的某些逻辑而发生异常。
现在我遵循“不要到处写 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/