我正在尝试使用新的.Net MAUI 来构建个人项目。 在工作中,我们使用 Flutter,并使用全局错误处理来显示错误页面,以防出现 API 异常或小部件渲染错误(它捕获所有内容)(就像在 React 中一样)链接如下:https://docs.flutter.dev/testing/errors .
我正在尝试用 MAUI 做同样的事情,但我无法在 iOS 上实现这一点,即使我使用 MarshalManagedException 或我在网络上找到的任何其他东西(我使用过MAUI GitHub 上发布的有关全局处理异常的所有解决方案)。在 Android 和 Windows 上,我可以捕获错误并将 handler 设置为 true 以防止应用程序崩溃。
我想要的是做与 Flutter 相同的事情,捕获异常并显示错误页面(默认情况下事件和堆栈隐藏,就像我们在 Flutter 应用程序上所做的那样)。
有人可以帮助我吗?或者在 MAUI 上不可能(我想尝试 Flutter 之外的其他技术)。
最佳答案
毛伊岛的“全局异常处理程序”只是在应用程序崩溃之前记录有关应用程序崩溃的详细信息的机会 - 不是可恢复的状态。因为一旦代码到达那里,毛伊岛就无法保证执行任何可显示的操作都是安全的。
- 为了避免应用崩溃,必须将所有内容包装在
try..catch
中。这意味着您的代码可以在任何地方得到控制。各个按钮处理方法等
即便如此,还是有办法让 Maui 内部结构或平台图形崩溃 - 但如果你尝试了一切,那只是极端情况。
理论认为,只有应用程序程序员才能决定是否可以安全地恢复情况,还是关闭应用程序。 try-catch
为您提供了单独针对每个代码位置进行决定的位置。
我确实希望毛伊岛提供一种简单的方法将所有用户交互包装在单个异常处理程序中(可以恢复并继续)。但事实并非如此。
(毛伊岛的 Blazor 部分可能适用于基于 Web 的代码。我对此并不熟悉。)
关于.net - MAUI:带有错误页面或小吃的全局异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75549610/