美文网首页Dart
Dart - 异常

Dart - 异常

作者: LouisXWB | 来源:发表于2019-12-18 22:17 被阅读0次

Dart 代码可以抛出和捕获异常。异常表示一些未知的错误情况,如果异常没有捕获则会被抛出从而导致抛出异常的代码终止执行。

备忘📝:
"与 Java 不同的是,Dart 的所有异常都是非必检异常,方法不一定会声明其所抛出的异常并且你也不会被要求捕获任何异常。"

抛出异常

下面是关于抛出或者 引发 异常的示例:

throw FormatException('Expected at least 1 section');

你也可以抛出任意的对象:

throw 'Out of llamas!';

推荐:代码通常抛出 ErrorException 类型的异常。

捕获异常

捕获异常可以避免异常继续传递(重新抛出异常除外)。捕获一个异常可以给你处理它的机会:

try {
  breedMoreLlamas();
} on OutOfLlamasException {
  buyMoreLlamas();
}

如果不想获取异常的实例,dart用的是on ExceptionClass{},如果想获取异常实例,可以加上on ExceptionClass catch(e){}来获取处理异常实例。

对于可以抛出多种异常类型的代码,也可以指定多个 catch语句,每个语句分别对应一个异常类型,如果 catch 语句没有指定异常类型则表示可以捕获任意异常类型:

try {
  breedMoreLlamas();
} on OutOfLlamasException {
  // 指定异常
  buyMoreLlamas();
} on Exception catch (e) {
  // 其它类型的异常
  print('Unknown exception: $e');
} catch (e) {
  // // 不指定类型,处理其它全部
  print('Something really unknown: $e');
}

如上述代码所示可以使用 oncatch 来捕获异常,使用 on 来指定异常类型,使用 catch 来捕获异常对象,两者可同时使用。

Finally

用法跟其他语言类似,就不细说了,更多详情请参考 Dart 核心库概览的异常章节获取更多相关信息。

相关文章

  • dart 异常

    dart中的异常 异常处理 抛出异常 异常捕获

  • Dart异常 VS Java异常,以及try-catch-fin

    Dart异常与Java异常有哪些不同呢? Dart的所有异常都是未经检查的异常。方法不声明(没throws)它们可...

  • Dart语言 4 异常和类

    异常 Dart代码可以抛出并捕获异常。如果未捕获异常,则会引发程序终止 与Java相比,Dart的所有异常都是未经...

  • Dart

    Dart线程模型及异常捕获 Flutter 实战 Dart的内存回收机制 Dart GC

  • Dart - 异常

    Dart 代码可以抛出和捕获异常。异常表示一些未知的错误情况,如果异常没有捕获则会被抛出从而导致抛出异常的代码终止...

  • dart语法7-泛型

    dart语法1dart语法2-内置类型dart语法3-函数dart语法4-操作符dart语法5-异常dart语法6...

  • dart语法8-库

    dart语法1dart语法2-内置类型dart语法3-函数dart语法4-操作符dart语法5-异常dart语法6...

  • dart语法10-生成器

    dart语法1dart语法2-内置类型dart语法3-函数dart语法4-操作符dart语法5-异常dart语法6...

  • dart语法9-异步

    dart语法1dart语法2-内置类型dart语法3-函数dart语法4-操作符dart语法5-异常dart语法6...

  • dart语法11

    dart语法1dart语法2-内置类型dart语法3-函数dart语法4-操作符dart语法5-异常dart语法6...

网友评论

    本文标题:Dart - 异常

    本文链接:https://www.haomeiwen.com/subject/ssxunctx.html