void testException() => throw Exception(“test exception”);

异常处理和大多数语言大差不差,下面总结自官方文档

完整的语法结构

  1. try {
  2. //do something
  3. } on AException catch(e) {
  4. //do something
  5. rethrow;
  6. } on BException catch(e, s) {
  7. //do something
  8. } finally {
  9. //do something
  10. }

几个点:

  • rethrow 可以将捕获的异常再次抛出
  • finally的执行逻辑和java语言一样,无聊是否抛出,都会执行
  • catch里面可以有两个参数,第二个是StaceTrace对象
  • on语法和java略有不同
  • 还可以这样抛异常 throw ‘Out of llamas!’;但不优雅
  • 关于使用Exception还是Error: stackoverflow有解释