dart:core
库中Error
类的用法介绍如下。
在程序失败的情况下抛出的错误对象。
Error
对象表示程序员应该避免的程序故障。
示例包括使用无效参数调用函数,甚至使用错误数量的参数,或者在不允许的时候调用它。
这些不是调用者应该期望或捕获的错误 - 如果它们发生,则程序是错误的,终止程序可能是最安全的响应。
在决定一个函数抛出错误时,应该清楚地说明它发生的条件,并且它们应该是可检测和可预测的,因此使用该函数的程序员可以避免触发错误。
这样的说明经常使用"must"或"must not"这样的词来说明条件,如果你在函数的文档中看到这样的词,那么不满足要求很可能会导致抛出错误。
示例(来自 String.contains ):
`startIndex` must not be negative or greater than `length`.
在这种情况下,如果startIndex
为负数或太大,则会引发错误。
如果在调用函数之前无法检测到条件,则被调用函数不应抛出 Error
。它可能仍然会抛出,但调用者必须捕获抛出的值,从而有效地使其成为替代结果而不是错误。被抛出的对象可以选择实现Exception 来记录它代表一个异常但不是错误的事件,但是作为一个Exception 除了记录之外没有其他影响。
所有非 null
值都可以在 Dart 中抛出。扩展Error
的对象被特殊处理:它们第一次被抛出时,抛出点的堆栈跟踪被记录并存储在错误对象中。可以使用 stackTrace getter 检索它。仅实现 Error
且不扩展它的错误对象不会自动存储堆栈跟踪。
错误对象也用于系统范围的故障,如堆栈溢出或内存不足的情况。
由于错误不是为了被捕获而创建的,因此不需要子类来区分错误。相反,已经创建了子类,以便通过一致的错误消息轻松创建相关错误组。例如,String.contains 方法将使用 RangeError ,如果它的 startIndex
不在 0..length
范围内,该范围很容易由 RangeError.range(startIndex, 0, length)
创建。
- 实施者
-
AbstractClassInstantiationError > ArgumentError > AssertionError > AsyncError > CastError > ConcurrentModificationError > CyclicInitializationError > FallThroughError > JsonUnsupportedObjectError > NoSuchMethodError > NullThrownError > OutOfMemoryError > RemoteError > StackOverflowError > StateError > TypeError > UnimplementedError > UnsupportedError
相关用法
- Dart Element.children用法及代码示例
- Dart Element.tag用法及代码示例
- Dart Element.querySelectorAll用法及代码示例
- Dart Event.eventType用法及代码示例
- Dart Enum.compareByIndex用法及代码示例
- Dart EventStreamProvider.forTarget用法及代码示例
- Dart Element.animate用法及代码示例
- Dart Element.created用法及代码示例
- Dart ElementList.classes用法及代码示例
- Dart Events用法及代码示例
- Dart EventStreamProvider.forElement用法及代码示例
- Dart Element.querySelector用法及代码示例
- Dart EnumName.name用法及代码示例
- Dart Enum.compareByName用法及代码示例
- Dart Element.insertAdjacentHtml用法及代码示例
- Dart Element.dataset用法及代码示例
- Dart Element.html用法及代码示例
- Dart Element.classes用法及代码示例
- Dart MapMixin.containsKey用法及代码示例
- Dart Iterator用法及代码示例
- Dart AttributeClassSet.intersection用法及代码示例
- Dart num.sign用法及代码示例
- Dart TransformList.last用法及代码示例
- Dart FileList.first用法及代码示例
- Dart CanvasRenderingContext2D.drawImageScaledFromSource用法及代码示例
注:本文由纯净天空筛选整理自dart.dev大神的英文原创作品 Error class。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。