Dart tour: 8、异常
代码可以抛出和捕获异常。异常表示一些未知的错误情况,如果异常没有捕获则会被抛出从而导致抛出异常的代码终止执行。与 Java
不同的是,Dart
的方法不必声明会抛出哪些异常,并且也不必捕获任何异常。
Dart
提供了 Exception
和 Error
两种类型的异常以及一系列的子类。我们也可以定义自己的异常类型。此外也可以将任何非 null
对象作为异常抛出而不局限于 Exception
或 Error
类型。
#
抛出异常#
捕获异常捕获异常可以避免异常继续传递(重新抛出异常除外)。捕获一个异常可以给我们处理它的机会。
对于可以抛出多种异常类型的代码,可以指定多个 catch
语句,每个语句分别对应一个异常类型,如果 catch
语句没有指定异常类型则表示可以捕获任意异常类型。
关键字 rethrow
可以将捕获的异常再次抛出
#
Finally无论是否抛出异常,finally
语句始终执行,如果没有指定 catch
语句来捕获异常,则异常会在执行完 finally
语句后抛出。
#
自定义异常如果系统提供的异常不满足需求,可以自定义异常来实现。