on 在 mixin 中的使用
| abstract class Animal { |
| |
| String name; |
| double speed; |
| |
| |
| Animal(this.name, this.speed); |
| |
| |
| void run(); |
| } |
| |
| |
| |
| mixin CanRun on Animal { |
| |
| @override |
| void run() => print('$name is Running at speed $speed'); |
| } |
| |
| class Dog extends Animal with CanRun { |
| |
| Dog(String name, double speed) : super(name, speed); |
| } |
| |
| void main() { |
| var dog = Dog('My Dog', 25); |
| dog.run(); |
| } |
| |
| |
| |
on 在捕获异常中的使用
| Future<void> main() async { |
| AnimalAction dog = Dog('sDog'); |
| dog.crow(); |
| |
| |
| dynamic res; |
| try { |
| res = 1 / 0; |
| } on Exception catch (e) { |
| print(e); |
| } finally { |
| print(res); |
| } |
| |
| try { |
| throw Exception('my err'); |
| } on Exception { |
| stderr.write('null err'); |
| await stderr.flush(); |
| await stderr.close(); |
| } |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步