콘솔 애플리케이션의 전역 예외 처리
콘솔 애플리케이션에서 처리되지 않은 예외로 인해 애플리케이션 실행이 중단되고 데이터가 손실될 수 있습니다. 이를 방지하려면 전역 예외 처리기를 정의하여 이러한 예외를 적절하게 포착하고 처리할 수 있습니다.
맞춤형 전역 예외 처리
AppDomain 클래스는 전역 예외 처리기를 정의하기 위해 구독할 수 있는 UnhandledException 이벤트를 제공합니다. .NET 2.0 이상에서는 다음 코드를 사용할 수 있습니다.
<code class="language-csharp">AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(MyExceptionHandler);</code>
VB.NET 참고
VB.NET에서 작업할 때는 아래와 같이 AppDomain.CurrentDomain 개체 앞에 "AddHandler" 키워드를 사용해야 한다는 점에 유의하세요.
<code class="language-vb.net">AddHandler AppDomain.CurrentDomain.UnhandledException, New UnhandledExceptionEventHandler(AddressOf MyExceptionHandler)</code>
구현예
다음 C# 코드는 콘솔 애플리케이션 전역 예외 처리기의 기본 예를 제공합니다.
<code class="language-csharp">using System; class Program { static void Main(string[] args) { // 注册全局异常处理程序 AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionTrapper; // 抛出一个未处理的异常以进行演示 throw new Exception("程序异常!"); } static void UnhandledExceptionTrapper(object sender, UnhandledExceptionEventArgs e) { // 记录或处理未处理的异常 Console.WriteLine(e.ExceptionObject.ToString()); // 让用户有机会查看错误消息 Console.WriteLine("按 Enter 键继续"); Console.ReadLine(); // 终止应用程序 Environment.Exit(1); } }</code>
참고: JIT 컴파일 중에 CLR에 의해 생성된 유형 및 파일 로드 예외는 전역 예외 처리기를 사용하여 포착할 수 없습니다. 이러한 예외를 처리하려면 지연 컴파일을 고려하거나 위험한 코드에 [MethodImpl(MethodImplOptions.NoInlining)]
특성을 적용하는 것이 좋습니다.
위 내용은 콘솔 애플리케이션에서 전역 예외 처리를 어떻게 구현할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!