从this post开始,引用鲍勃·奈斯特罗姆的话:
Error及其子类用于编程错误.如果其中一个 发生时,您的代码是错误的,您应该修复您的代码.
非错误异常类用于运行时错误.有时候你可以 防止他们被抛出,但通常你做不到.
除非在少数特殊情况下,惯用的dart 应该抛出 错误,但永远不会捕捉到它们.它们的存在是专门为了不存在 被捕获,因此他们关闭应用程序并提醒程序员注意 错误的位置.
换句话说,您应该期待(并判断)异常(您应该处理它们).如果您收到错误,那么您需要判断您是如何使用抛出错误的API的-您可能是错误地使用了它.
如果您正在编写API,那么您应该使用相同的模式.错误是向下游开发人员发送的有关他们如何使用您的API的消息.