检查C#中的exception捕获

Java要求您捕获所有可能的exception或将它们声明为方法签名中抛出的exception。 这不是C#的情况,但我仍然认为捕获所有exception是一个好习惯。 有没有人知道一个工具可以处理一个C#项目并指出抛出exception但没有被捕获的地方?

查看Jason Bock为.NET Reflector提供的ExceptionFinder插件。 它正是你想要的。 这是一个狡猾的:

在CodePlex上查看它

有一个R#插件可以分析抛出的exception。 http://exceptionalplugin.codeplex.com/

Red-Gate软件有一个名为Exception Hunter的产品应该这样做。

编辑:此产品已被Red-Gate软件停产。

如果您使用C#作为Web应用程序,那么您可以使用ELMAH,它显示所有已处理和未处理的exception的列表。

只需下载ELMAH并插入即可。它是免费的!

除非您需要设置全局处理程序,否则不要在单个方法中捕获它们。

Application.ThreadException += new ThreadExceptionEventHandler( Application_ThreadException ); private static void Application_ThreadException( object sender, ThreadExceptionEventArgs e) { dispatchException( e.Exception ); }