Dart-异常、导包

作者: 哎呀啊噢 | 来源:发表于2019-07-27 17:04 被阅读3次
异常:
 异常是在程序执行期间出现的问题,发生遗异常时程序流程中断,程序异常终止;
  • dart会抛出并捕获异常,如果没捕获异常,就会中断程序运行
  • Exception、Error
  • Throw 抛出异常,Catch 捕获并处理异常,on..catch处理多个类型异常
  • Finally确保代码的运行,最终都会执行finally语句
常见异常:
  • DeferredLoadException 延迟库无法加载
  • FormatException 数据类型转换异常,或解析异常
  • IntegerDivisionByZeroException 数字除以零
  • IOException IO流异常
  • NullPoingtException 空指针异常
try / on / catch块
可能发生的异常代码块,嵌入代码,需要指定异常类型,try语句后边必须跟一个on语句或者一个finally语句;catch语句可以携带俩个参数,第一个参数为抛出的异常对象,第二个参数为堆栈信息;
代码示例
try {
   // 可能引发异常的代码
}  
on Exception1 {
   // 用于处理异常的代码
}  
catch Exception2 {
   // 用于处理异常的代码
}

finally语句,跟java中的一样,不管有没有抛出异常,都会执行的语句;

try {
   // code that might throw an exception
}  
on Exception1 {
   // exception handling code
}  
catch Exception2 {
   //  exception handling
}  
finally {
   // code that should always execute; irrespective of the exception
}
抛出异常
thorw关键字用于抛出异常,处理发生的异常,防止程序异常退出;
代码示例
 //简单的对象抛出异常
  throw 'this is error...';

  //系统自定义异常
  throw new FormatException('转换异常...');
自定义异常
Dart中每个异常类型都是内置类Exception类的子类型,Dart可以通过扩展现有异常来创建定义异常类型,
导包:
  • import 导入一个库 library用于定义一个库 export 包导出
  • as 指定前缀命名空间
  • show 关键字指定导入的函数
  • hide 关键字指定不需要导入的函数
 import 'package:lib1/lib1.dart';
 import 'package:lib2/lib2.dart' as lib2;
 //如果你导入的两个库具有冲突的标识符, 则你可以使用库的前缀来区分。 例如,如果 library1 和 library2 都有一个名字为 Element 的类
 
 //Uses Element from lib1.
 Element element1 = new Element(); 
 
 // Uses Element from lib2.
lib2.Element element2 = new lib2.Element(); 
 
 
//Import only foo.
 
//import 'package:lib1/lib1.dart' show foo;
  
//Import all names EXCEPT foo.
  
//import 'package:lib2/lib2.dart' hide foo;

相关文章

网友评论

    本文标题:Dart-异常、导包

    本文链接:https://www.haomeiwen.com/subject/trverctx.html