Flutter - Dart -assert断言、try、catch、finally异常处理

5,918 阅读1分钟

编译环境: VSCode版本: 1.46.0 ,Dart版本: v3.11.0,Flutter版本: v3.11.0

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