【发布时间】:2017-09-14 15:42:21
【问题描述】:
我正在使用带有 WinForms 的 ABP 框架,我需要确定拦截异常并记录此信息的最佳方法。
My WinForms 是一个多文档界面 (MDI) 应用程序。我在 Program.cs 中添加了一个HandleException,这样当应用程序抛出异常时,我就可以将它记录在日志文件中。但是如果我在ApplicationService 中遇到异常,则此异常由 ABP 处理,不会被扔回 WinForms,并且不会在日志文件中写入任何内容。
我是否需要实现一些接口才能拥有像 MVC/Angular 应用这样的经典日志记录?
更新
我发现问题与异步操作有关。通常我会打电话:
await _service.GetProducts();
如果抛出异常,主线程不会拦截它。如果我切换到:
AsyncHelper.RunSync(() => _service.GetProducts());
然后主线程拦截错误。
【问题讨论】:
标签: winforms asynchronous exception-handling interceptor aspnetboilerplate