【问题标题】:Error handling in Blazor server Razor ComponentBlazor 服务器 Razor 组件中的错误处理
【发布时间】:2021-01-08 10:53:54
【问题描述】:

如何处理 blazor 服务器 razor 组件中未处理的异常,在页面模型中,我正在使用 try catch 块进行处理,但一些错误来自 razor 文件,并且电路中断,应用程序停止。请建议我处理此问题的解决方案。

【问题讨论】:

  • 默认情况下,如果发生任何未处理的异常,Blazor 会在页面底部显示一条黄线。你想怎么处理这个错误?

标签: exception blazor-server-side


【解决方案1】:

我阅读了很多关于这个问题的内容,发现目前无法为 blazor 进行全局错误处理,您可以像这样处理与 http 请求相关的错误:

if (!response.IsSuccessStatusCode)
        {
            var statusCode = response.StatusCode;
            switch (statusCode)
            {
                case HttpStatusCode.NotFound: _navigation.NavigateTo("/Notfound", true);
                    break;
                case HttpStatusCode.Unauthorized: _navigation.NavigateTo("/Error");
                    break;
                default: _navigation.NavigateTo("/Error");
                    break;
            }
            throw new ApplicationException($"Reason: {response.ReasonPhrase}");
        }

您还需要小心在 blazor 组件中使用 try catch 和一些探针 [inject] 因为您的 blazor 电路可能会失败! 您可以在 microsoft documents 中阅读更多相关信息,如果我错了,请更正。

【讨论】:

    猜你喜欢
    • 2022-01-03
    • 1970-01-01
    • 2021-11-10
    • 2020-04-03
    • 1970-01-01
    • 2020-02-06
    • 1970-01-01
    • 1970-01-01
    • 2021-05-10
    相关资源
    最近更新 更多