默认情况下,当 Blazor Server 应用程序出现未处理的异常时,blazor-error-ui 组件将自动显示。这包括在 Blazor 组件生命周期中的事件期间(如 OnInitializedAsync、OnParametersSetAsync 等)出现的异常以及从组件树内部抛出的异常。
为了手动调用 blazor-error-ui 组件,您可以使用 Blazor 的 IErrorBoundary 接口。 IErrorBoundary 接口是一个可以实现在组件树上处理错误的接口。要使用 IErrorBoundary 接口,您需要在组件中实现此接口并实现其 OnError 方法。
以下是一个示例,演示了如何在 Blazor Server 应用程序中使用 IErrorBoundary 组件和 blazor-error-ui 组件。
使用 IErrorBoundary 接口:
@implements IErrorBoundary
使用 OnError 方法来拦截错误并显示 blazor-error-ui 组件:
async Task IErrorBoundary.OnErrorAsync(Exception exception) { this.exception = exception; await InvokeAsync(StateHasChanged); }
在组件中添加 blazor-error-ui 组件:
完整的示例代码如下:
using Microsoft.AspNetCore.Components;
@implements IErrorBoundary
Exception exception;
async Task IErrorBoundary.OnErrorAsync(Exception exception) { this.exception = exception; await InvokeAsync(StateHasChanged); }