Task
C# 5.0 이상에서는 async 및 Wait 키워드가 단순화됩니다. 작업 기반 프로그래밍이 크게 향상되었습니다. ContinueWith에 의존하는 대신 비동기 메서드를 사용하면 try/catch 블록을 직접 사용하여 예외를 처리할 수 있습니다.
try { // Start the task. var task = Task.Factory.StartNew<StateObject>(() => { /* action */ }); // Await the task. await task; } catch (Exception e) { // Perform cleanup here. }
이전 버전의 C#의 경우 TaskContinuationOptions 열거형을 사용하는 ContinueWith 오버로드는 다음과 같습니다. 사용됨:
// Get the task. var task = Task.Factory.StartNew<StateObject>(() => { /* action */ }); // For error handling. task.ContinueWith(t => { /* error handling */ }, context, TaskContinuationOptions.OnlyOnFaulted);
OnlyOnFaulted는 선행 작업에서 예외가 발생한 경우에만 연속 작업이 실행되도록 보장합니다. 다양한 사례를 처리하기 위해 여러 연속 작업을 연결할 수 있습니다.
// For error handling. task.ContinueWith(t => { /* error handling */ }, context, TaskContinuationOptions.OnlyOnFaulted); // If it succeeded. task.ContinueWith(t => { /* on success */ }, context, TaskContinuationOptions.OnlyOnRanToCompletion);
비동기/대기 접근 방식을 선택하든, TaskContinuationOptions 기술을 사용하는 ContinueWith를 선택하든 이러한 방법을 사용하면 C# 작업에서 예외를 효과적으로 포착하여 애플리케이션이 처리하도록 보장할 수 있습니다. 예상치 못한 오류가 정상적으로 발생했습니다.
위 내용은 C# 작업(Async/Await 및 ContinueWith)에서 예외를 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!