Dart语言学习(十一) Dart异常处理
2023-09-27 14:25:01 时间
异常是表示发生了意外的错误,如果没有捕获异常,引发异常的隔离程序将被挂起,并且程序将被终止;
Dart代码可以抛出并捕获异常,但与java相反,Dart的所有异常都是未检查的异常,方法不声明它们可能抛出哪些异常,也不需要捕获任何异常;
Dart提供了异常和错误类型以及许多预定义的子类型,当然,也可以定义自己的异常,然而,Dart成语可以抛出任何非空对象;
-
抛出异常
下面是一个抛出或引发异常的例子:
throw FormatException('抛出一个FormatException异常'); //你也可以抛出任意对象 throw '数据非法!';
-
捕获异常
你可以指定一个或两个参数来捕获异常(catch),第一个是抛出的异常,第二个是堆栈跟踪(StackTrace对象)。如下面代码所示:
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语句:
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); }
Dart学习系列文章:https://www.cnblogs.com/jukaiit/category/1636484.html
相关文章
- SpringBoot_异常处理
- python学习笔记(参数收集、私有方法或属性,继承,异常)
- 异常检测算法(一):Kmeans聚类【把数据聚集为几个簇,再计算每个元素至簇中心的距离,最后选择最远距离的几个点视为异常值】【在低维数据上效果不错,在高维数据上表现欠佳(高维数据降维后丢失关键信息)】
- 时间序列-异常检测(Anomaly Detection)(四):深度学习方法
- 多类别不平衡分类-解决方案:概述【集成学习、数据重采样、深度学习(元学习)、异常检测】
- Java菜鸟学习笔记--Exception篇(一):异常简介
- 《Head First Python》学习笔记03 异常处理
- [数据库/MySQL]解决异常:Data truncation: Truncated incorrect DOUBLE value: 'dc5'
- java中异常抛出后代码还会继续执行吗
- vscode学习(二)之显示中文异常解决办法
- tomcat启动异常(严重: Dispatcher initialization failed Unable to load configuration. - [unknown location] )
- Oracle 学习笔记 17 -- 异常处理(PL/SQL)
- cpu设计和实现(异常和中断)
- DPO7254C泰克示波器搭配6139B探头抓取波形异常的原因之一
- python学习笔记(六)——异常处理
- 2018-8-10-WPF-如何在绑定失败异常
- Java 异常类与捕获异常