나는이 패턴을 사용할 수있는 것으로 예상 처리하지 않습니다기다려온 작업이 예외가 정상적으로
내 SQL 서버가 시작되지var task = Task.Run(() => Agent.GetUserType(Instance));
await task;
string information = task.GetExceptionOrStatus(); // extension method
- 단지 테스트 케이스로 - 나는 예외가 WCF 서비스가 발생한다는 것을 알,
'System.ServiceModel.FaultException'유형의 예외가 Microsoft.Threading.Tasks.dll에서 발생했지만 사용자 코드에서 처리되지 않았습니다.
나는 내 코드가 작업 객체에서 오류를 추출 할 수 있다는 인상하에 있었다.
어떻게하면 좋을까요?
.net 4.5에서'ThrowUnobservedTaskExceptions'를 비활성화 할 때 try-catch없이 수행 할 수 있습니까? – Gerard
@Gerard :'ThrowUnobservedTaskExceptions'는이 동작과 관련이 없습니다. 예외를 전파하는 것은'async'가 설계된 방식이었습니다. 당신이 * 원하지 않는 이유가 있습니까? –
try-catch없이 작업 결과에 쉽게 액세스 할 수 있습니다. 예 : 'InotifyTaskCompletion'은'ContinueWith'와'PropertyChanged' 콜백을 통해 예외를 우아하게 처리합니다. 아마도'task.Exception.Handle'을 조사해야 할 것입니다. 반면에 try-catch는 명시 적이며 또한 좋은 것입니다. – Gerard