我试图找到解决方案,如何捕捉和保存异常在我的Blazor WASM核心托管应用程序中更全局的方式,除了把尝试捕捉代码在我的所有方法在我的控制器。
在我的应用程序Blazor WebAssembly的UI部分,我使用ErrorBoundary捕获错误,这对WebAssembly来说相当不错,但对于来自Blazor.Server的异常,我只得到“500(内部服务器错误)”和在.razor组件中触发此错误的方法的确切位置。
我想实现类似的东西,但这将工作在我的控制器在Blazor服务器。确切的控制器和后端的代码行导致这个错误。
<ErrorBoundary>
<ChildContent>
@Body
</ChildContent>
<ErrorContent Context="Exception">
@SaveLogs(Exception)
</ErrorContent>
</ErrorBoundary>
2条答案
按热度按时间ws51t4hk1#
在您的 API Controllers 项目中,您可以使用
Middleware
全局捕获异常。This video帮助我了解了很多。异常处理中间件.cs
我很想在 Blazor Server Side 项目中将
<ErrorBoundary>
替换为Middleware
,但似乎还不可能。xpcnnkqh2#
有一种非常优雅的方法可以做到这一点,你想检查这个Library,Oyu可以从方法返回结果,结果是一个结构体,保存你的数据,你的异常发生在以前的方法等。
此外,Youtube上的nick chapsas先生有一个关于这个主题的完整视频。