Blazor Server:blazor-error-ui 何时会显示?
关于blazor-error-ui显示时机的疑问与解答
问题描述
我对blazor-error-ui的实际工作机制略有困惑。我知道它默认会通过CSS的display: none样式隐藏,但尝试在应用中触发错误时,始终无法让它显示。
根据Blazor官方文档:
blazor-error-ui元素通常因站点样式表中blazor-error-ui CSS类的display: none样式而隐藏……发生错误时,框架会将该元素的display设为block。
文档说明错误发生时blazor-error-ui的display属性会被设为block,但我抛出异常时会跳转到开发者异常页面,完全不会显示该div;若将环境设为Release,则会跳转到/Error页面。那么blazor-error-ui div到底何时才会显示?是Blazor自身发生内部错误时吗?
解答
blazor-error-ui的触发场景是Blazor应用初始化阶段发生的无法恢复的启动错误,和业务代码运行时抛出的异常处理逻辑完全分开:
- 当Blazor框架在启动过程中(比如加载核心框架脚本失败、初始化根组件出错、配置项加载异常等)出现问题,导致应用根本无法正常启动,此时框架会自动将
blazor-error-ui的display设为block,展示这个错误提示元素。 - 你在业务代码中主动抛出的异常,属于应用运行时错误,开发环境会触发开发者异常页面,生产环境则跳转到/Error页面,这类错误不会触发
blazor-error-ui的显示。
举个简单的测试方法:如果是Blazor Server项目,修改_Host.cshtml中的Blazor框架脚本引用路径为错误地址,让框架无法加载核心脚本;如果是Blazor WebAssembly项目,修改index.html中的对应脚本路径。此时应用启动失败,blazor-error-ui就会自动显示出来。
内容的提问来源于stack exchange,提问作者micka190
相关产品推荐
相关产品推荐

