本实验的主要工作是找到程序容易出错的地方,并且尽力避免程序的崩溃。主要找到了以下几种容易出错的场合:
1.trackgame的错误处理:
(1).如果game标签没有找到或者不合法,则抛出异常game type error.
(2).如果num of track标签没有找到或者不合法,则抛出异常num of track error.
(3).对于运动员的信息,如果某行数据的格式不合法,将忽略该数据,继续读取其他数据。如果没有合适的运动员数据,则抛出异常athlete not found.
(4).如果有两个运动员名字完全相同,抛出异常same name.
(5).如果国家名字不是三位大写字母,抛出异常country of XXX error。其中xxx为该运动员的姓名。
(6).如果进行接力比赛时,选手数目不能被4整除,抛出异常not divisive by 4.
2.atom structure的错误处理
(1).如果元素名字不合法或未找到,抛出异常element name error.
(2).如果原子轨道数目不合法或未找到,抛出异常number of tracks error.
(3).如果电子数目的数据组数和原子轨道数不匹配,抛出异常track number illegal.
(4).如果没有找到电子数目信息,抛出异常electron information required.
(5).如果中子和质子的信息不是同时出现或同时不出现,抛出异常nucleus error.
(6).若跃迁时当前轨道已经为空或者目标轨道不存在,抛出异常not legal transit action.
3.social network circle的错误处理
(1).如果找不到中心用户,或者中心用户的信息格式不正确,抛出异常central user error.
(2).如果某个用户的性别信息不正确,抛出异常sex error。
(3).如果在添加社交关系时使用了未定义的用户,抛出异常add failed.
(4).试图删除不存在的社交关系,抛出异常remove failed.
(5).试图查询不存在的用户的逻辑距离,抛出异常name not found.
(6).试图查询不在第一轨道上用户的expansion,抛出异常not on track 1.
(7).若某些行的信息有部分错误,忽略该行但不终止程序。
为了记录和输出方便,定义了一个自定义异常类。该类包含了发生错误的日期和时间,表示错误信息的字符串以及错误类型编号。当此异常对象被创建时,还可以自动向控制台输出相关的错误信息,以便于定位错误。
通过本次实验我学会了为程序添加异常处理机制,使用断言保证程序的正确性,以及用日志来记录程序的所作所为。总体来讲有一定的收获。实际上,为他人进行代码的差错比自己写一个新的程序还要困难,需要更强的代码理解能力。
相关文章
- 01-13哈工大软件构造 第三次实验报告
- 01-13哈工大 软件构造 实验二
- 01-13哈工大软件构造 第二次实验报告
- 01-13软件构造Lab1-Part1总结
- 01-132021年春季学期 计算学部《软件构造》课程 Lab 1实验报告
- 01-13软件构造实验三-递归下降分析分析法
- 01-13哈工大软件构造实验三关于Set,Map,List中内容比较的问题
- 01-13软件构造Lab4实验总结
- 01-13软件构造实验一
- 01-13HIT软件构造实验三 重点与反思