처리되지 않은 예외 이벤트에 대한 처리기를 작성합니다.이 예외 처리기는 파일에 예외를 덤프 한 다음 추가 분석을 위해 서버로 보냅니다. 현재로서는 충돌이 발생했음을 보여줄 것입니다. 나는 그 행사에 구독했다. 이 방법에서는 오류 처리 기능을 호출했습니다. 나는이 방법이 코드를 썼다 그러나 : 디버그 모드에서Universal Apps의 처리되지 않은 예외 처리기의 비동기 메서드
public async Task HandleException(Exception exception)
{
var dialog = new MessageDialog(exception.Message, "Exception occurred");
await dialog.ShowAsync();
}
하고 실행을 Visual Studio에서 Visual Studio를 적시에 디버거를 보여줍니다. 처음에는 GUI 스레드가 죽어 가고있을 때 Message Box를 표시하려고하는 것이 문제라고 생각했습니다. 기능 FileStorage.WriteToFileAsync의 모습
public async Task HandleManagedException(Exception
{
await FileStorage.WriteToFileAsync("someFile.txt", exception.ToString());
}
: 나는 await FileIO.WriteTextAsync(file,data)
에 중단 점을 넣을 때, 디버거 모드에서
public async Task WriteToFileAsync(string filename, string data)
{
var file = await this.storageFolder.CreateFileAsync(filename, CreationCollisionOption.ReplaceExisting);
await FileIO.WriteTextAsync(file, data);
}
이 거기 중지 내가 할 수있는 기능을 변경했습니다. 계속 버튼을 누르면 앞의 코드와 같은 창이 나타납니다. XAML 이벤트에서 호출 될 때 제대로 실행됩니다. 처리되지 않은 예외 처리기에서 비동기 메서드에 대한 Google 및 StackOverflow를 검색했지만 내 문제와 관련이 없습니다.
내 질문은 다음과 같습니다. 오류의 원인은 무엇입니까? 처리되지 않은 예외 처리기에서 비동기 메서드를 사용할 수 있습니까?
업데이트 : 지금까지 답변 해 주셔서 감사합니다. 두 번째 질문은 코드를 자세히 디버깅 한 후에 나 자신에게 대답했습니다. 그것이 가능하고 함수가 의도 한대로 작동하고 있다는 것이 밝혀졌습니다.
WriteToFileAsync ("someFile., exception.ToString());"코드를 읽으 실 수 있습니까? – BugFinder
예, 'FileTime.WriteTextAsync (file, data);를 기다리고 있습니다.', 디버거를 실행하고 거기서 멈추었습니다. –
잘 못 견적으로 - 거기에 문제가있는 것 같습니다 – BugFinder