Dart 异常处理,异常表示发生了意外的错误,如果没有捕获异常,引发异常的程序将被挂起,并且程序将被终止。

Dart代码可以抛出并捕获异常,但与Java相反,Dart的所有异常都是未检查的异常。

Dart提供了异常和错误类型以及许多预定义的子类型。当然,也可以定义自己的异常。然而,Dart程序可以抛出任何非空对象。

提示 稳定健壮的程序一定是做了大量异常处理的,所以建议在编写程序时尽量考虑到可能发生异常的情况。

可以指定一个或两个参数来捕获异常(catch),第一个是抛出的异常,第二个是堆栈跟踪(StackTrace对象),如下面的代码所示:

上面的代码中,第一个catch用来捕获异常详细信息,第二个catch是堆栈跟踪信息。

要确保某些代码能够运行,无论是否抛出异常,可使用finally子句。如果没有catch子句匹配异常,则异常在finally子句运行后抛出。如下面的代码所示,在最下方加上了finally语句: