美文网首页
Dart基础(五)-错误和异常

Dart基础(五)-错误和异常

作者: 苍眸之宝宝 | 来源:发表于2022-01-07 09:23 被阅读0次

简介:

您的Dart代码可以抛出和捕获异常。异常是指示发生了意外情况的错误。如果未捕获异常,则引发异常的隔离程序将被挂起,并且通常会终止隔离程序及其程序。

与Java相反,Dart的所有异常都是未检查的异常。方法不声明它们可能抛出的异常,也不需要捕获任何异常。

Dart提供了异常和错误类型,以及许多预定义的子类型。当然,您可以定义自己的异常。然而,Dart程序可以抛出任何非空对象——不仅仅是Exception和Error对象——作为异常。

  总结一下要点:

  • Dart与其它语言一样有异常处理机制,可以抛出和捕获异常;
  • Dart中发生未捕获异常不会中断整个程序,但会中断当前代码段,继续执行后续的代码;
  • Dart和其它语言不同是所有异常都是未检查的异常,即所有的异常都不用捕获或处理(当然,不处理,不代表没有);
  • Dart提供了ExceptionError 类及其子类对异常和错误进行捕获处理;
  • Dart也可以抛出任何非空对象作为异常。

异常的处理:

  Dart中处理异常的方式:

  • throw抛出异常;
  • try-on处理特定类型的异常;
  • try-catch处理无法预料的异常;
  • try-on-catch处理特定类型的异常和其它无法预料的异常;
  • try-on...catch-finally处理完异常后统一进行的操作;
divide(int a, int b) {
  if (b == 0) {
    throw new IntegerDivisionByZeroException();
  }
  return a / b;
}

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

// try-catch
try {
    dynamic foo = true;
    print(foo++); // Runtime error
  } catch (e) {
    print('misbehave() partially handled ${e.runtimeType}.');
    rethrow; // Allow callers to see the exception.
  }

try {
  breedMoreLlamas();
} on OutOfLlamasException {
  // A specific exception
  buyMoreLlamas();
} on Exception catch (e) {
  // Anything else that is an exception
  print('Unknown exception: $e');
} catch (e) {
  // No specified type, handles all
  print('Something really unknown: $e');
}

try {
  // ···
} on Exception catch (e) {
  print('Exception details:\n $e');
} catch (e, s) {  // 异常,异常堆栈
  print('Exception details:\n $e');
  print('Stack trace:\n $s');
}

// try-catch-finally
try {
  breedMoreLlamas();
} catch (e) {
  print('Error: $e'); // Handle the exception first.
} finally {
  cleanLlamaStalls(); // Then clean up.
}

相关文章

  • Dart基础(五)-错误和异常

    简介: 您的Dart代码可以抛出和捕获异常。异常是指示发生了意外情况的错误。如果未捕获异常,则引发异常的隔离程序将...

  • Dart(2.2) - 异常(Exceptions)

    异常(Exceptions) 你的Dart代码可以抛出异常和捕获异常。异常就是出现预期之外的结果的错误。如果没有捕...

  • Dart学习-异常

    你的Dart代码可以抛出和捕捉异常。异常是错误,表示发生了意外的事情。如果没有捕获到异常,引发异常的隔离会挂起,通...

  • Dart - 异常

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

  • Flutter 异常捕获

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

  • Dart 处理错误和异常的正确方式

    前言 当程序运行过程中发生错误的时候,Dart 会抛出异常。在 Dart 中使用了on ... catch 方式来...

  • Dart 2(六)异常

    异常 您的Dart代码可以抛出并捕获异常。异常是表示发生了意外的错误。如果没有捕获异常,引发异常的隔离程序将被挂起...

  • 异常 (Exceptions)

    Dart代码可以抛出并捕获异常。异常是表示发生了意外的错误。如果没有捕获异常,引发异常的隔离程序将被挂起,通常隔离...

  • dart入门潜修系列教程

    dart入门潜修基础篇之基本语法和内置类型dart入门潜修基础篇之方法dart入门潜修基础篇之操作符dart入门潜...

  • Dart 基础(四)

    前言笔者在之前已经写了3篇Dart的基础文章了。Dart 基础 (一)Dart 基础 (二)Dart 基础 (三)...

网友评论

      本文标题:Dart基础(五)-错误和异常

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