使用异常处理程序错误课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《使用异常处理程序错误课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 使用 异常 处理 程序 错误 课件
- 资源描述:
-
1、使用异常处理程序错误使用异常处理程序错误第十五讲第十五讲2回顾什么是常量?Java中,常量的定义规则有哪些?什么是面向接口编程,它的好处是什么?3预习检查什么是异常?Java中,如何进行异常处理?请说明throw 与 throws的区别与联系?4本章任务升级Hello,完成如下功能:n根据课程代码输出课程名称n输出各学期平均课时等信息n使用log4j记录异常日志5n掌握Java的异常处理机制q运用 try、catch、finally 处理异常q运用 throw 抛出异常q运用 throws 声明异常n掌握log4j的用法,能够记录异常日志本章目标6生活中的异常n正常情况下,小王每日开车去上班,
2、耗时大约30分钟n但是,异常情况迟早要发生!一路畅通一路畅通堵车!堵车!撞车!撞车!7程序中的异常public class Hello public static void main(String args)System.out.print(请输入课程代号请输入课程代号(1至至3之间的数字之间的数字):);Scanner in=new Scanner(System.in);int courseCode=in.nextInt();/从键盘输入整数从键盘输入整数switch(courseCode)case 1:System.out.println(C#编程编程);break;case 2:Syst
3、em.out.println(Java编程编程);break;case 3:System.out.println(SQL基础基础);输入:输入:2输出:输出:Java编程编程输入:输入:B程序中断运行!程序中断运行!正常情况:正常情况:异常情况:异常情况:8什么是异常n异常就是在程序的运行过程中所发生的不正常的事件,它会中断正在运行的程序绕行或者等待绕行或者等待请求交警解决请求交警解决异常!异常!n面对异常该怎么办呢?通常情况下,我们会这样处理:程序运行程序运行程序中断运行程序中断运行堵车!堵车!撞车!撞车!生活中,我们会根据不同的异常进行相应的处理,生活中,我们会根据不同的异常进行相应的处理
4、,而不会就此中断我们的生活而不会就此中断我们的生活9什么是异常处理nJava语言使用异常处理机制为程序提供了错误处理的能力程序中预先想好了程序中预先想好了 对付异常的处理办法对付异常的处理办法 异常!异常!程序运行程序运行处理完毕,程序继续运行处理完毕,程序继续运行对异常进行处理对异常进行处理10Java中如何进行异常处理nJava的异常处理是通过5个关键字来实现的:try、catch、finally、throw、throws 捕获异常捕获异常 catchtryfinally执行可能产生执行可能产生 异常的代码异常的代码 捕获异常捕获异常 无论是否发生异常,无论是否发生异常,代码总能执行代码总
5、能执行手动抛出异常手动抛出异常 抛出异常抛出异常 throw声明异常声明异常 声明方法可能要声明方法可能要抛出的各种异常抛出的各种异常 throws11try/catch块7-1trycatch try/catch 块后的代码段块后的代码段public void method()try /代码段代码段(此处不会产生异常此处不会产生异常)catch(异常类型异常类型 ex)/对异常进行处理的代码段对异常进行处理的代码段/代码段代码段n使用try/catch块捕获异常,分为三种情况:第一种情况第一种情况 12try/catch块7-2n使用示例模拟第一种情况:public class Except
6、ion public static void main(String args)System.out.print(请输入课程代号请输入课程代号(1至至3之间的数字之间的数字):);Scanner in=new Scanner(System.in);try int courseCode=in.nextInt();switch(courseCode)case 1:System.out.println(C#编程编程);break;case 2:System.out.println(Java编程编程);break;case 3:System.out.println(SQL基础基础);catch(Exc
7、eption ex)System.out.println(输入不为数字输入不为数字!);System.out.println(欢迎提出建议欢迎提出建议!);输入:输入:2Java编程编程欢迎提出建议欢迎提出建议!控制台输出控制台输出13try/catch块7-3trycatch异常类型匹配异常类型匹配 try/catch 块后的代码段块后的代码段进入进入catch块块public void method()try /代码段代码段 1 /产生异常的代码段产生异常的代码段 2 /代码段代码段 3 catch(异常类型异常类型 ex)/对异常进行处理的代码段对异常进行处理的代码段4/代码段代码段5n
8、使用try/catch块捕获异常,分为三种情况:第二种情况第二种情况 产生异常对象产生异常对象 程序继续执行程序继续执行异常是一种特殊的对象,异常是一种特殊的对象,类型为类型为java.lang.Exception或其子类或其子类 发生异常发生异常14try/catch块7-4n使用示例模拟第二种情况:public class Exception public static void main(String args)System.out.print(请输入课程代号请输入课程代号(1至至3之间的数字之间的数字):);Scanner in=new Scanner(System.in);try i
9、nt courseCode=in.nextInt();switch(courseCode)case 1:System.out.println(C#编程编程);break;case 2:System.out.println(Java编程编程);break;case 3:System.out.println(SQL基础基础);catch(Exception ex)System.out.println(输入不为数字输入不为数字!);ex.printStackTrace();System.out.println(欢迎提出建议欢迎提出建议!);输入:输入:B输入不为数字输入不为数字!异常堆栈信息异常堆栈
10、信息欢迎提出建议欢迎提出建议!控制台输出控制台输出15nprintStackTrace的堆栈跟踪功能显示出程序运行到当前类的执行流程 public class Exception public static void main(String args)System.out.print(请输入课程代号请输入课程代号(1至至3之间的数字之间的数字):);Scanner in=new Scanner(System.in);try int courseCode=in.nextInt();/此处代码省略此处代码省略 catch(Exception ex)System.out.println(输入不为数字
11、!输入不为数字!);ex.printStackTrace();System.out.println(欢迎提出建议欢迎提出建议!);try/catch块7-5java.util.InputMismatchExceptionat java.util.Scanner.throwFor(Scanner.java:840)at java.util.Scanner.next(Scanner.java:1461)at java.util.Scanner.nextInt(Scanner.java:2091)at java.util.Scanner.nextInt(Scanner.java:2050)at s2
12、jsp.sg.ch05.AccpException.main(AccpException.java:23)异常类型异常类型异常堆栈信息异常堆栈信息在此方法中抛出了异常在此方法中抛出了异常16try/catch块7-6trycatch异常类型不匹配异常类型不匹配 try/catch 块后的代码段块后的代码段程序中断运行程序中断运行 发生异常发生异常public void method()try /代码段代码段 1 /产生异常的代码段产生异常的代码段 2 /代码段代码段 3 catch(异常类型异常类型 ex)/对异常进行处理的代码段对异常进行处理的代码段4/代码段代码段5n使用try/catch
13、块捕获异常,分为三种情况:第三种情况第三种情况 产生异常对象产生异常对象 17try/catch块7-7n使用示例模拟第三种情况:public class Exception2 public static void main(String args)System.out.print(请输入课程代号请输入课程代号(1至至3之间的数字之间的数字):);Scanner in=new Scanner(System.in);try int courseCode=in.nextInt();switch(courseCode)case 1:System.out.println(C#编程编程);break;c
14、ase 2:System.out.println(Java编程编程);break;case 3:System.out.println(SQL基础基础);catch(NullPointerException ex)System.out.println(输入不为数字!输入不为数字!);System.out.println(欢迎提出建议!欢迎提出建议!);输入:输入:B程序中断运行程序中断运行18try/catch/finally 2-1n在try/catch块后加入finally块,可以确保无论是否发生异常,finally块中的代码总能被执行try 块块 finally 块块 catch 块块 无
15、异常无异常 有异常有异常 19try/catch/finally 2-2 public class Exception3 public static void main(String args)System.out.print(请输入课程代号请输入课程代号(1至至3之间的数字之间的数字):);Scanner in=new Scanner(System.in);try int courseCode=in.nextInt();switch(courseCode)case 1:System.out.println(C#编程编程);break;case 2:System.out.println(Jav
16、a编程编程);break;case 3:System.out.println(SQL基础基础);catch(Exception ex)System.out.println(输入不为数字!输入不为数字!);finally System.out.println(欢迎提出建议!欢迎提出建议!);输入:输入:2Java编程编程欢迎提出建议欢迎提出建议!控制台输出控制台输出输入:输入:B输入不为数字输入不为数字!欢迎提出建议欢迎提出建议!第一种情况:第一种情况:无异常无异常第二种情况:第二种情况:有异常有异常 20小结 1n编写一个类ExceptionTest1,在main方法中使用try、catch、
17、finally:q在try块中,编写被0除的代码q在catch块中,捕获被0除所产生的异常,并且打印异常信息q在finally块中,打印一条语句21public void method()try /代码段代码段 /产生异常产生异常(异常类型异常类型2)catch(异常类型异常类型1 ex)/对异常进行处理的代码段对异常进行处理的代码段 catch(异常类型异常类型2 ex)/对异常进行处理的代码段对异常进行处理的代码段 catch(异常类型异常类型3 ex)/对异常进行处理的代码段对异常进行处理的代码段/代码段代码段多重catch块 2-1n一段代码可能会引发多种类型的异常n当引发异常时,会按
展开阅读全文