项目

本文档有多个版本。请选择最适合您的选项。

UI

Blazor UI:错误处理

Blazor 默认会在发生未处理异常时在页面底部显示黄色错误提示条,但这在实际应用中并不实用。

ABP 为 Blazor UI 提供了一套自动错误处理系统:

  • 自动处理所有未捕获异常,并向用户展示清晰实用的提示信息
  • 能够区分不同类型的异常。对用户隐藏内部/技术性错误详情(此类情况会显示通用错误信息)
  • 服务端异常处理系统 深度集成

基础用法

ABP 框架会对不同类型的异常进行差异化处理。

UserFriendlyException

UserFriendlyException 是一种特殊异常类型。通过抛出此类异常,可以直接向用户显示错误提示对话框。

示例

@page "/"
@using Volo.Abp

<Button Clicked="TestException">抛出测试异常</Button>

@code
{
    private void TestException()
    {
        throw new UserFriendlyException("这是一条用户友好型错误信息!");
    }
}

ABP 会自动处理异常并向用户显示错误信息:

blazor-user-friendly-exception

如需创建自定义异常类,可从 UserFriendlyException 派生,或直接实现 IUserFriendlyException 接口。

可使用本地化系统展示本地化的错误信息。

BusinessException 及其他异常类型

请参阅异常处理文档了解不同类型的异常类和接口,以及异常处理系统的其他功能。

通用错误处理

如果抛出的异常不属于特殊类型,则被视为通用错误,系统会向用户显示通用错误信息:

blazor-generic-exception-message

所有错误详情(包括堆栈跟踪)仍会记录在浏览器控制台中。

服务端错误

服务端返回的错误(如验证错误、授权错误和用户友好型错误)会按预期进行处理,并正确展示给用户。因此错误处理系统可实现端到端的无缝衔接,无需手动处理异常或手动传递服务端到客户端的错误信息。

扩展阅读

在本文档中