有人可以花 5 分钟时间解释一下 Flutter/Dart 中抛出错误和异常之间的区别吗?我在网上找到的信息非常矛盾且令人困惑。
在什么情况下我应该抛出错误,在什么情况下我应该抛出异常?
其中哪些可以或应该通过 try/catch 方法捕获?
抛出不同的错误类型(例如 Error 或 ArgumentError)有什么区别?我在哪里可以找到这些类型的列表?
提前非常感谢!
错误显示程序不应尝试捕获的关键问题。通常,这些是代码本身的问题,例如系统故障或逻辑错误。
异常是程序可能希望检测和处理的情况,例如不正确的用户输入或不成功的网络请求。
什么时候扔什么?
抛出错误:当您的代码出现问题时(例如断言错误或类型错误)无法修复。
抛出异常:当您遇到可能希望处理或恢复的问题时(例如 IOException 或 FormatException)。
使用try/catch:
捕获异常:要处理异常,请使用 try/catch 块。这可以让您通知用户。
避免捕获:错误通常不应该被捕获。
总而言之,
错误:严重,通常不会被发现。
异常:不太严重,可以发现并处理。
欲了解更多详细信息,请查看此处。