assert 断言 使用
- 在语句执行过程中,插入asser(bool表达式),来判断异常情况
- 如果表达式值为true,则继续后面的语句,如果值为false,则报异常
- assert只有在调试模式下生效,生产模式会忽略
int age = 22;
bool result = age < 0;
print(result);
assert(result);//不清楚为什么result是false不报错,且会继续执行
print(age);
异常处理
- 抛异常 使用 throw xxx 抛一个异常 :throw xxxException();
- 抛任意一个类型 : throw "error"
捕获异常
- try catch finally
- try 包含一个语句块
- on 可以捕获指定一个具体的异常
- catch 可以捕获任意异常
- finally 无论如何都会执行到的语句块
try {
var a = 1/0;
}on IntegerDivisionByZeroException{
//一个具体异常
print('0 被除');
}on Exception catch(e){
//任意一个异常
print('a exception: $e');
}catch (e) {
//非具体类型
print('exception $e');
}finally {
print('finally');
}