在.NET中,方法签名不告诉我,如果我错过了处理一些例外,可以通过我的代码中抛出。 有一些工具,可以警告我,如果说我使用的是哈希表删除,但还没有办理ArgumentNullException?我不想在运行时会感到惊讶。

这意味着你需要知道你的代码非常好,否则unchecked异常也很难一起工作呢?

有帮助吗?

解决方案

其实,终止程序处理突发异常是应对这种情况,因为在一般情况下,程序的状态是不确定时,意想不到的事情发生的最好办法。如果您登录所有的异常,并有一个体面的一套验收测试,可以消除它们来自意外的异常是由于程序流程的问题。

通过检查方法输入,类单元测试,了解你的框架将让大多数例外预计防御性编程。

其他提示

有关Windows应用程序:

AppDomain currentDomain = default(AppDomain);
currentDomain = AppDomain.CurrentDomain;
// Handler for unhandled exceptions.
currentDomain.UnhandledException += UnhandledExceptionHandler;
// Handler for exceptions in threads behind forms.
Application.ThreadException += ThreadExceptionHandler;

public static void UnhandledExceptionHandler(object sender, UnhandledExceptionEventArgs e)
{
}

public static void ThreadExceptionHandler(object sender, Threading.ThreadExceptionEventArgs e)
{
}

有是你正试图完成什么没有语言支持。我们写了一个海关插件,以VS,以确保所有对我们的API的入口点有尝试接球记录。不过,我从来没有看到在强迫你以涵盖所有可能的声明例外的情况,因为你还必须写一些代码做一些有意义的事情错误语言的价值。大多数人只是看哪个编译抱怨写一个处理程序和隐藏,这可能是一些无用的代码,一个有用的错误。在某些情况下,它能够更好地失败,知道有一个问题。

您应该为您的应用程序,并写入单元,为您的应用程序的功能和集成测试,这将考验所有可能的使用情况增加最顶层的异常处理程序。这将帮助你消除几乎所有的unchecked异常。

也尽量不要捕捉异常,但消除的原因。 (即,不赶上ArgumentNullException但不传递null

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top