- 1、本文档共18页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
博学实训软件工程JAVA面向对象第4章-异常
国家信息化人才培养工程(深圳博学)授权实训基地
第四章异常
预习检查
Java异常处理的5个关键字是什么?
说出至少3个异常类型?
throws和throw各自的作用是什么?
本章任务
任务1:使用异常处理机制解决程序中的问题
任务2:阶段练习——图书销售管理项目答疑
使用try,catch,finally处理异常
使用throws声明异常
自定义异常
本章目标
点重
使用throw抛出异常
理解异常的概念
点难
串讲:异常处理
Java使用异常处理机制为程序提供了错误处理的能力
程序中预先想好了
对付异常的处理办法
异常!
程序运行
处理完毕,程序继续运行
对异常进行处理
异常
在程序运行过程中可能发生的不正常的事件
会中断正在运行的程序
串讲: Java中如何进行异常处理
Java的异常处理是通过5个关键字来实现的:try、catch、 finally、throw、throws
捕获异常
catch
try
finally
执行可能产生
异常的代码
捕获异常
无论是否发生异常,
代码总能执行
手动抛出异常
抛出异常
throw
声明异常
声明方法可能要
抛出的各种异常
throws
串讲: try-catch块
使用try-catch块捕获异常
public void method(){
try {
// 可能产生异常的 代码段
} catch (异常类型 ex) {
// 对异常进行处理的代码段4
}
// 代码段5
}
异常是一种特殊的对象,
类型为java.lang.Exception
或其子类
try
与异常类型1不匹配
try-catch 块后的代码段
发生异常
产生异常对象
catch
与异常类型2匹配
catch
catch
进入catch块
串讲:多重catch块
public void method(){
try {
// 代码段
// 产生异常(异常类型2)
} catch (异常类型1 ex) {
// 对异常进行处理的代码段
} catch (异常类型2 ex) {
// 对异常进行处理的代码段
} catch (异常类型3 ex) {
// 对异常进行处理的代码段
}
// 代码段
}
程序继续执行
串讲:多重catch块
输入:B
进入第一个
catch块
输入:200 0
进入第二个
catch块
try {
//……省略从键盘输入num1和num2的语句 System.out.println(String.format(%d / %d = %d, num1, num2, num1/ num2));
} catch (InputMismatchException e) {
System.err.println(被除数和除数是整数。);
} catch (ArithmeticException e) {
System.err.println(除数不能为零。);
} catch (Exception e) {
System.err.println(其他未知异常。);
}
在安排catch语句的顺序时,首先应该捕获最特殊的异常, 然后再逐渐一般化,即先子类后父类 。
方法名
说明
Exception
异常层次结构的根类
ArithmeticException
算术错误情形,如以零作除数
ArrayIndexOutOfBoundsException
数组下标越界
NullPointerException
尝试访问 null 对象成员
NumberFormatException
数字格式转换异常,如把abc转换成
数字
串讲:常见的异常类型
你知道的异常类型有哪些?
串讲:try-catch-finally
在try-catch块后加入finally块,可以确保无论是否发生异常,finally块中的代码总能被执行
try 块
finally 块
catch 块
无异常
有异常
串讲:try-catch-finally
finally块中语句不执行的唯一情况
异常处理代码中执行System.exit(1)退出Java虚拟机
try {
//……省略输入num1和num2的代码
System.out.println(String.format(%d / %d = %d, num1, num2, num1/ num2));
} catch (Exception e) {
System.err.println(出现错误:被除数和除数必须是整数, +除数不能为零);
System.ex
文档评论(0)