1.运行图片  
 
 2.源码  
using  System ; 
using  System. Collections. Generic ; 
using  System. Linq ; 
using  System. Threading. Tasks ; 
using  System. Windows. Forms ; 
namespace  捕捉全局异常
{ 
    internal  static  class  Program 
    { 
        
        
        
        [ STAThread] 
        static  void   Main ( ) 
        { 
            
            Application. SetUnhandledExceptionMode ( UnhandledExceptionMode. CatchException) ; 
            Application. ThreadException +=  Application_ThreadException; 
            AppDomain. CurrentDomain. UnhandledException +=  CurrentDomain_UnhandledException; 
            Application. EnableVisualStyles ( ) ; 
            Application. SetCompatibleTextRenderingDefault ( false ) ; 
            Application. Run ( new  Form1 ( ) ) ; 
        } 
        private  static  void   CurrentDomain_UnhandledException ( object   sender,  UnhandledExceptionEventArgs  e) 
        { 
            
            Exception  ex =  e. ExceptionObject as  Exception ; 
            if  ( ex !=  null ) 
            { 
                MessageBox. Show ( $"发生了未处理的异常: { ex. Message } " ,  "错误" ,  MessageBoxButtons. OK,  MessageBoxIcon. Error) ; 
            } 
            else 
            { 
                MessageBox. Show ( $"发生了未处理的非托管异常" ,  "错误" ,  MessageBoxButtons. OK,  MessageBoxIcon. Error) ; 
            } 
        } 
        private  static  void   Application_ThreadException ( object   sender,  System. Threading. ThreadExceptionEventArgs  e) 
        { 
            
            MessageBox. Show ( $"发生了未处理的异常: { e. Exception. Message } \r\n"   +  $"错误的位置: { e. Exception. StackTrace } " ,  "错误" ,  MessageBoxButtons. OK,  MessageBoxIcon. Error) ; 
        } 
    } 
} 
  
 3,使用方法---->不用弹窗的方式,可以用写Log的方式写出来。