第5周课堂练习
本节为当堂可完成的练习,基于本周 大纲、讲义 与 演示案例 内容。建议在完成「实操任务」后按顺序做。
练习 1:运行本课程 Demo 并理解类与异常
依据:讲义「八、运行本课程第5周 Demo」;案例 demos/week-05/demo/library_cli。
步骤:
- 打开或克隆课程仓库,进入
demos/week-05/demo/library_cli。 - 在终端执行
dart run bin/main.dart(或dart run .)。 - 对照输出,在
bin/main.dart中找到:Book类的属性与构造函数、Library的addBook与findByAuthor、重复 ISBN 时抛出的异常类型及main中的捕获方式。 - 口头或笔记回答:本程序在什么情况下会抛出异常?异常类叫什么?
验收:能成功运行程序,并能指出 Book/Library 的职责与自定义异常的名称及触发条件。
练习 2:在案例中新增一本图书并触发一次查询
依据:大纲「类与对象」「图书馆管理系统」;讲义「二、类与对象」「八、运行本课程第5周 Demo」。
步骤:
- 在
bin/main.dart的main()中,仿照现有lib.addBook(Book(...))再写一行,添加一本新书(书名、作者、ISBN、年份自拟,ISBN 勿与已有重复)。 - 保存后执行
dart run bin/main.dart,确认输出列表中出现该新书。 - 在
main()中增加一次按作者或按 ISBN 的查询并print结果,再次运行确认输出正确。
验收:程序输出包含新添加的图书,且有一次查询结果输出。
练习 3:用 DartPad 写一个简单类(含 getter 或自定义异常)
依据:大纲「类与对象」「异常处理」;讲义「二、类与对象」「六、异常处理」。
步骤:
- 打开 DartPad。
- 编写一个简单类,例如:
Rectangle(宽、高),带areagetter;或在一个函数内对非法输入(如负边长)throw自定义异常并在main中try-catch打印。 - 在
main()中创建对象并调用 getter,或触发异常并捕获,点击 Run 确认无报错、输出符合预期。
验收:在 DartPad 中能定义类(含 getter)或自定义异常并正确使用。