单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第,16,次课 使用异常处理程序错误上机,Java,面向对象程序设计,相关回顾,一组,try/catch/finally,中,是否可以包含多个,catch,块和多个,finally,块?,throw,和,throws,有什么区别?,使用,log4j,可以向文件中记录日志吗?,补充案例,上机目标,使用,UserDaoImpl,类、,User,类,完成如下功能:,对空的,User,对象调用,getUserInfo(),方法抛出的异常进行处理,修改,UserDaoImpl,,要求用户,id,不能修改,修改则抛异常,使用,log4j,输出日志信息,教员讲解上机目标,训练技能点,会使用,try,/,catch,/,finally,捕获和处理异常,会使用,throw,和,throws,抛出异常,会使用,log4j,记录日志,训练要点:,异常,异常处理,需求说明:,使用,UserDaoImpl,的查找方法,查找一个不存在的用户,并试图输出用户信息,使用,try,/,catch,对抛出的异常进行处理,阶段,1,实现思路及关键代码:,1,、,向,UserDaoImpl,中添加用户,然后查找并输出该用户信息,2,、,使用不存在的用户名查找用户,并试图输出用户信息,3,、,对抛出的异常使用,try,/,catch,进行异常处理,阶段,1,测试类代码示例,讲解实现思路和关键代码,完成时间:,15,分钟,需求说明:,1,、对阶段,1,的异常使用,try,/,catch,/,finally,进行异常处理,2,、,finally,块输出是否抛出了异常,阶段,2,代码示例,完成时间:,15,分钟,阶段,2,常见调试问题及解决办法,代码规范问题,共性问题集中讲解,训练要点:,throw,,,throws,需求说明:,修改,UserDaoImpl,的,updateUser(User user),方法:,如果用户,id,被修改,则:,1,、不执行更新,2,、抛出一个,Exception,异常,3,、异常消息是“用户,id,不能修改”,阶段,3,实现思路及关键代码:,1,、修改,UserDao,的,updateUser(User user),方法,声明抛出异常,2,、修改,UserDaoImpl,的,updateUser(User user),方法,加入判断语句,并抛出异常,3,、在测试类中调用,并进行异常处理,阶段,3,if,(user.getUId()!=i),throw new,Exception(,用户,id,不能修改,);,测试类代码示例,实现类代码示例,接口代码示例,讲解实现思路和关键代码,完成时间:,20,分钟,需求说明:,1,、使用,log4j,输出日志信息,2,、查看输出的日志信息,阶段,4,测试类代码示例,日志配置文件示例,完成时间:,15,分钟,阶段,4,常见调试问题及解决办法,代码规范问题,共性问题集中讲解,总结,总结并布置作业,1,阶段一,2,阶段二,3,阶段三,4,阶段四,