Ole*_*nge 30 .net c# exception popup windows-vista
我有一个用C#/ .NET编写的控制台应用程序,我想从脚本(nant)运行.如果控制台应用程序中发生异常,我不想继续,但在Windows Vista中有一个弹出窗口,它会搜索解决方案并要求调试等.
当控制台应用程序中发生异常时,我想避免弹出"程序停止工作".如何从C#/ .NET控制它?
(类似的问题解决了C语言的问题,但我想要一个C#/ .NET的解决方案.)
(澄清一下:我希望将异常传递给nant,但没有弹出窗口.)
Dre*_*kes 43
当存在未处理的异常时,会发生JIT调试器弹出窗口.也就是说,异常隧道一直向上隧道到运行时中任何线程的根.
为避免这种情况,您可以处理该AppDomain.CurrentDomain.UnhandledException事件,只需调用Environment.Exit(1)即可正常退出.
这将处理AppDomain中所有线程的所有异常.除非你做任何特别的事情,否则你的app可能只有一个AppDomain,所以把它放在你的public static void Main方法中就足够了:
AppDomain.CurrentDomain.UnhandledException += (sender, args) =>
{
Console.Error.WriteLine("Unhandled exception: " + args.ExceptionObject);
Environment.Exit(1);
};
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您应该使用NAnt记录器来写出错误(虽然不能回想起这个问题的API.)
您还可以在计算机上禁用JIT调试.我只会在某些情况下推荐这种方法,例如专用的构建服务器.
| 归档时间: |
|
| 查看次数: |
21600 次 |
| 最近记录: |