日期:2014-05-17  浏览次数:20808 次

如果没有加 try catch ,但是报错了还想去捕捉这个错误信息,怎么做啊。
代码里面 try catch 并不是加的很完全,程序偶尔会自己关闭,有没有一个全局的可以捕捉错误信息的。
在程序关闭前捕捉到这个错误信息。

------解决方案--------------------
如果是Web的话,可以用ExceptionFilter或者用Elmah

还有一种方式是VS中内置的
打开Debug菜单,Exceptions,选择你要Exception,打钩

还有就最差的方式,可以加一个大的Try Catch包围你代码……
------解决方案--------------------
引用:
代码里面 try catch 并不是加的很完全,程序偶尔会自己关闭,有没有一个全局的可以捕捉错误信息的。
在程序关闭前捕捉到这个错误信息。


http://msdn.microsoft.com/zh-cn/library/system.windows.forms.application.threadexception(v=vs.100).aspx


http://msdn.microsoft.com/zh-cn/library/system.windows.threading.dispatcher.unhandledexception(v=vs.100).aspx


http://msdn.microsoft.com/zh-cn/library/system.appdomain.unhandledexception(v=vs.100).aspx
------解决方案--------------------
引用:
是C/S的
如果里面有线程的话,这个Try Catch 能不能起到作用啊

如果是严重的进程崩溃异常,管他什么线程不线程的?你写多少语句都捕获不了。

而你在进程内用其它代码可以捕获的异常,删掉你多余的“其他代码”,这代码当然就可以捕获。
------解决方案--------------------

static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            try
            {
                //处理未经处理的异常
                Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
                //捕获应用程序已发生的异常
                Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);