【发布时间】:2023-02-04 14:35:46
【问题描述】:
假设在 Flutter 应用程序中,我们希望在顶层捕获任何未捕获的异常/错误,因此我们按照 the docs 执行此操作:
main() {
// All uncaught errors thrown from synchronous code blocks will end up here:
FlutterError.onError = (FlutterErrorDetails details) {
MyLogger.instance.logUncaughtErrorSync(details);
};
// All uncaught errors thrown from async code blocks will end up here:
PlatformDispatcher.instance.onError = (Object error, StackTrace stack) {
MyLogger.instance.logUncaughtErrorASync(error, stack);
return true;
};
runApp(const MyApp());
我能说出两者之间的唯一区别是对象(错误)是从异步代码还是同步代码中抛出的。
不过,肯定不止于此,那么拥有两个独立机制(具有不同的输入——Flutter ErrorDetails 与 Object+StackTrace)有什么意义……真正的区别是什么?
【问题讨论】:
标签: flutter dart error-handling