异常的捕获及处理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
i = Integer.parseInt( str1 );
j = Integer.parseInt( str2 );
int temp = i / j ;
// 此处产生了异常
System.out.println(“相除的结果:” + temp);
}catch( ArithmeticException e){
public class ExceptionDemo04{
public static void main(String args[]){
int i , j ;
try{ String str1 = args[0] ;
// 接收第一个参数
String str2 = args[1] ;
// 接收第二个参数
}
2.异常处理try-catch-finally模型
try{
可能出现异常的语句;
}catch(异常类1 异常对象){
异常1的处理语句;
}catch(异常类2 异常对象){
异常2的处理语句;
}…
关键字的作用
try: 捕捉异常
catch: 处理异常
finally: 异常的统一出口
finally{
一定要运行的语句;
处理异常时编程人员做什么? ①给异常类对象起名字 ②抓它 ③处理它 ④抛它
1.异常范例ExceptionDemo01.java
public class ExceptionDemo01{ public static void main(String args[]){ System.out.println("******* 计算开始 *******") ; int i = 10 ; int j = 0 ; int temp = i / j ; System.out.println("两个数字相除的结果:" + temp) ; System.out.println("******* 计算结束 *******") ; }
System.out.println("算术异常:" + e) ;
}catch( NumberFormatException e){
System.out.println("数字转换异常:" + e);
}catch( ArrayIndexOutOfBoundsException e){
System.out.println("数组越界异常:" + e) ;
}
}
验证finally的作用:异常的统一出口
public class ExceptionDemo03{ public static void main(String args[]){ System.out.println("******** 计算开始 *******") ; int i = 10 ; int j = 2 ; try{ int temp = i / j ; System.out.println("两个数字相除的结果:" + temp) ; }catch(ArithmeticException ae){ System.out.println("出现异常了:" + ae) ; }finally{ System.out.println("不管是否出现异常,都执行此代码") ; } System.out.println("******** 计算结束 *******") ; }
}
范例ExceptionDemo02.java
public class ExceptionDemo02{
public static void main(String args[]){
System.out.println("****** 计算开始 ********") ;
int i = 10 ;
int j = 0 ;
• 一个好的程序,整体的1/3是在处理要完成的真 正任务,而2/3是在处理异常,这样的程序才是 最强壮的。
6.2 异常类的继承结构
Object
Throwable
异常类
Error
Exception
RuntimeException IOException ……
查阅API文档
6.3 异常处理机制
• 两种处理异常的机制 ①捕获异常 try——catch——finally模型
}
多重catch处理异常
• 程序在开发中不会只存在一个异常,肯定会同时 存在多个异常。此时就需要使用多个catch语句 进行处理。
• 例:使用键盘输入两个数据,进行除法操作。 • 分析: 没有输入参数或个数不够——数组超出绑定异常 输入的参数不是数字——数字格式化异常 除数为零——算术异常 …… • 范例ExceptionDemo04.java
}catch( Exception e){
System.out.println("异常:" + e) ;} System.out.println("****** 计算结束 *****") ;
}}
3.异常信息的输出
• 直接打印异常对象 System.out.println(e)
try{
int temp = i / j ;
// 此处产生了异常
System.out.println("两个数字相除的结果:" + temp) ;
} catch ( ArithmeticException ae ){
System.out.println("出现异常了:" + ae) ;
}
System.out.println("******* 计算结束 *********") ;
②抛出异常 throw 、throws
• 异常类对象的产生:程序产生异常时,系统 (JVM)会自动实例化一个异常类的对象, 对象中保存了具体的异常描述信息。
6.4 异常处理
定义类 创建对象 初始化
Java库类中的 SUN 程序员
类
程序员
用户创建的类 程序员 程序员
程序员
异常类
Hale Waihona Puke Baidu
JVM 出错的方法 出错的方法
6.1 异常简介
• 在程序运行过程中,可能会遇到一些非正常的 状况,这种非正常状况对程序来说是一种异常
• 例如:除以零、数组越界、试图打开一个根本 不存在的文件等。
• 后果:如果不对异常进行正确的处理,则可能 导致程序的中断执行,造成不必要的损失。所 以在程序的设计中必须考虑到各种异常的发生, 并做好相应的处理。