首页 > 解决方案 > Blazor 客户端应用程序级异常处理

问题描述

如何全局处理客户端 Blazor 应用程序的应用程序级异常?

标签: exceptionblazorblazor-client-side

解决方案


您可以创建一个处理 WriteLine 事件的单例服务。这将仅在错误时触发,这要归功于Console.SetError(this);

public class ExceptionNotificationService : TextWriter
{
    private TextWriter _decorated;
    public override Encoding Encoding => Encoding.UTF8;

    public event EventHandler<string> OnException;

    public ExceptionNotificationService()
    {
        _decorated = Console.Error;
        Console.SetError(this);
    }

    public override void WriteLine(string value)
    {
        OnException?.Invoke(this, value);

        _decorated.WriteLine(value);
    }
}

然后将其添加到 ConfigureServices 函数中的 Startup.cs 文件中:

services.AddSingleton<ExceptionNotificationService>();

要使用它,您只需在主视图中订阅 OnException 事件。

资源


推荐阅读