断言

斷言(Assertion)是一个很有用的开发工具。下面的代码在调试模式(debug mode)下运行,将产生一个断言错误(AssertionError)。

// ch0203_1.dart
void main() {
  var str = '';
  assert(str.isNotEmpty, "str cannot be empty");
  // do something else
}

assert 接收2个参数,第一个参数必须是布尔表达式, 第二个参数是可选的,乃错误提示信息;在调试模式下,当第一个参数的值为false时,将出现断言错误。

断言仅在调试模式(debug mode)下起作用。对于发布模式(release mode),除非在编译时显示启用了断言, 所有的assert 语句都将被忽略,从而不会干预程序的执行流程。在Dart的相关命令中(例如 dart rundart compile exe),通过--enable-asserts 参数启用断言,如

dart run --enable-asserts bin/ch02/ch0203_1.dart