查看: 130|回复: 0

Dart语言学习(十一) Dart异常处理

[复制链接]
发表于 2020-2-16 00:00:02 | 显示全部楼层 |阅读模式
非常是表示发生了意外的错误,如果没有捕捉非常,引发非常的隔离步伐将被挂起,而且步伐将被终止;
Dart代码可以抛出并捕捉非常,但与java相反,Dart的所有非常都是未检查的非常,方法不声明它们大概抛出哪些非常,也不需要捕捉任何非常;
Dart提供了非常和错误类型以及许多预界说的子类型,当然,也可以界说自己的非常,然而,Dart成语可以抛出任何非空对象;

  • 抛出非常
下面是一个抛出或引发非常的例子:
  1. throw FormatException('抛出一个FormatException非常');//你也可以抛出任意对象throw '数据非法!';
复制代码

  • 捕捉非常
你可以指定一个或两个参数来捕捉非常(catch),第一个是抛出的非常,第二个是堆栈跟踪(StackTrace对象)。如下面代码所示:
  1. try{    //逻辑代码操纵    } on Exception catch (e){        print('exception details:\n $e');    }catch (e,s){        print('exception details:\n $e');        print('stack trace:\n $s');    }//上面的代码第一个catch用来捕捉非常详细信息,第二个catch是堆栈跟踪信息
复制代码

  • Finally
要确保某些代码能够运行,无论是否抛出非常,请使用finally子句,如果没有catch子句匹配非常,则非常在finally子句运行后流传,如下面代码所示,在最下面加上了finally语句:
  1. try{    //逻辑代码操纵    } on Exception catch (e){        print('exception details:\n $e');    }catch (e,s){        print('exception details:\n $e');        print('stack trace:\n $s');    }finally{        print(''Do sth);    }
复制代码
  1. Dart学习系列文章:[url=https://www.cnblogs.com/jukaiit/category/1636484.html]https://www.cnblogs.com/jukaiit/category/1636484.html[/url]
复制代码

相关技术服务需求,请联系管理员和客服QQ:2753533861或QQ:619920289
您需要登录后才可以回帖 登录 | 用户注册

本版积分规则

帖子推荐:
客服咨询

QQ:2753533861

服务时间 9:00-22:00

快速回复 返回顶部 返回列表