Dart 之Exceptions异常

作者 : 开心源码 本文共1015个字,预计阅读时间需要3分钟 发布时间: 2022-05-12 共191人阅读

Exceptions(异常)

相比较java的异常有少量区别

Dart 异常是非检查异常。 方法不肯定公告了他们所抛出的异常

Dart提供的异常类型:

  • Exceptions
  • Error
  • 自己设置异常

Dart 代码可以 抛出任何非 null 对象为异常,不仅仅是实现了 Exception 或者者 Error 的对象。

抛出异常

throw new FormatException('Expected at least 1 section');throw 'Out of llamas!';

异常捕获

Dart 对于抛出多种类型的异常,可以分别捕获对应类型的异常

假如没有指定捕获异常类型,则可以捕获任何类型的异常

可以使用on 或者者 catch来公告捕获语句,也可以 同时使用。使用 on 来指定异常类型,使用 catch 来 捕获异常对象

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');}

函数 catch()可以带有一个或者者两个参数, 第一个参数为抛出的异常对象, 第二个为堆栈信息

  ...} on Exception catch (e) {  print('Exception details:\n $e');} catch (e, s) {  print('Exception details:\n $e');  print('Stack trace:\n $s');}

使用 rethrow 关键字可以把捕获的异常给 重新抛出

} catch (e) {  // No specified type, handles all  print('Something really unknown: $e');  rethrow;}

Finally

使用 一个finally语句来确保少量代码一定被执行

没有 catch语句来捕获异常, 则在执行完 finally语句后, 异常被抛出了

try { } finally {}

一般finally放在匹配所有类型异常的catch之后

try {  } catch(e) { } finally {}

Exception 异常类型

-Exception

Error异常类型

error

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Dart 之Exceptions异常

发表回复