Dart 异常处理


如果关心具体异常 针对不同异常进行不同处理
使用try...on处理异常
finally 可选的 用于最后的处理

try { // 使除数为0
  print(11~/0);
} on IntegerDivisionByZeroException {
  print("除数为0");
}on Exception{
  print("Exception");
}finally {
  print("finally");
}


不关心具体异常
只想捕获
避免异常继续传递
则可以使用try...catch处理
try {
  print(11~/0);
} catch(e){ // 打印报错信息
  print(e);
}finally {
  print("finally");
}


如果想获取更多异常信息
可以使用两个参数的catch
第二个参数是异常的调用栈信息
try {
  print(11~/0);
} catch(e,s){
  print(s);
}
如果
既想针对不同异常进行不同处理
还想打印调用栈信息
那就将两种结合起来使用

try {
  print(11~/0);
} on IntegerDivisionByZeroException catch(e,s){
  print(s);
} on Exception catch(e,s){
  print(s);
}