我正在使用WinForms的ABP框架,我需要確定攔截異常並記錄此信息的最佳方法。WinForms異常攔截器
我的WinForms是一個多文檔界面(MDI)應用程序。我在Program.cs中添加一個HandleException
,這樣當應用程序拋出一個異常時,我可以將它記錄在日誌文件中。但是,如果我在ApplicationService
中遇到異常,則此異常由ABP處理並且不會返回到WinForms,並且沒有任何內容寫入日誌文件。
我是否需要實現一些接口來使經典日誌記錄像MVC/Angular應用程序?
UPDATE
我發現問題與異步操作。通常我打電話:
await _service.GetProducts();
如果引發異常,主線程不會攔截它。如果我切換到:
AsyncHelper.RunSync(() => _service.GetProducts());
然後主線程攔截錯誤。
@Albert thk您的建議,但以這種方式,您不能攔截異步異常 – andmattia