美文网首页
Flutter/Dart - 异常处理

Flutter/Dart - 异常处理

作者: 沫之 | 来源:发表于2020-07-14 09:25 被阅读0次

异常处理

dart 使用经典的try-catch处理异常,使用关键字throw抛出一个异常。

抛出异常

首先,看看如何抛出异常

main(List<String> args) {
  divide(100, 0);
}
 
divide(int a, int b) {
  if (b == 0) {
    throw new IntegerDivisionByZeroException();
  }
  return a / b;
}

当b变量的值为0的时候,抛出一个内置的异常IntegerDivisionByZeroException。
你也可以在异常中携带一个字符串信息。

main(List<String> args) {
  divide(10, 0);
}
 
divide(int a, int b) {
  if (b == 0) {
    throw new Exception('Divide by zero');
  }
  return a / b;
}

捕获和处理异常

接着来看看重点的捕获和处理异常。
某种类型的异常可以通过on关键字捕获,如下:

main(List<String> args) {
  try {
    divide(10, 0);
  } on IntegerDivisionByZeroException {
    print('Division by zero.');
  }
}
 
divide(int a, int b) {
  if (b == 0) {
    throw new IntegerDivisionByZeroException();
  }
  return a / b;
}

如果你不知道抛出异常的类型,或者不确定,可以使用catch块处理任意类型的异常。

main(List<String> args) {
  try {
    divide(10, 0);
  } on IntegerDivisionByZeroException {
    print('Division by zero.');
  } catch (e) {
    print(e);
  }
}
 
divide(int a, int b) {
  if (b == 0) {
    throw new Exception('Some other exception.');
  }
  return a / b;
}

Finally
dart也提供了finally块,即是否发生异常这个块都会执行。

main(List<String> args) {
  try {
    divide(10, 0);
  } on IntegerDivisionByZeroException {
    print('Division by zero.');
  } catch (e) {
    print(e);
  } finally {
    print('I will always be executed!');
  }
}
 
divide(int a, int b) {
  if (b == 0) {
    throw new Exception('Some other exception.');
  }
  return a / b;
}

相关文章

  • Flutter/Dart - 异常处理

    异常处理 dart 使用经典的try-catch处理异常,使用关键字throw抛出一个异常。 抛出异常 首先,看看...

  • Flutter & Dart 中的异常处理

    Flutter & Dart 中的异常处理 哪些场景下需要错误处理介入 同步代码 同步代码中,try-catch-...

  • Flutter稳定性与性能优化

    一、Flutter异常与Crash Flutter异常指的是Flutter程序在运行时所抛出的异常分为: Dart...

  • Flutter 异常捕获

    Flutter 异常 Flutter 异常指的是,Flutter 程序中 Dart 代码运行时意外发生的错误事件。...

  • Dart

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

  • dart 异常

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

  • 第6章 Dart基础语法 -- 异常处理

    1. 异常的定义 Dart的异常处理机制参考了Java语言的异常处理机制。与Java语言不同的是,Dart中不存在...

  • Flutter异常捕获处理

    本文内容非原创, 仅用于整理记录原文链接?: flutter 崩溃收集 Dart线程模型及异常捕获 Flutter...

  • Json转Dart Model类

    Flutter 中如何处理Json Flutter给我们提供了dart:convert包,我们可以通过: json...

  • Flutter异常捕获runZoned

    Flutter异常捕获Dart中可以通过try/catch/finally来捕获代码块异常,这个和其它变成语言类似...

网友评论

      本文标题:Flutter/Dart - 异常处理

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