![异常处理课件_第1页](http://file4.renrendoc.com/view14/M03/3E/0C/wKhkGWcj3xWABN_CAAE0HVgKdEM954.jpg)
![异常处理课件_第2页](http://file4.renrendoc.com/view14/M03/3E/0C/wKhkGWcj3xWABN_CAAE0HVgKdEM9542.jpg)
![异常处理课件_第3页](http://file4.renrendoc.com/view14/M03/3E/0C/wKhkGWcj3xWABN_CAAE0HVgKdEM9543.jpg)
![异常处理课件_第4页](http://file4.renrendoc.com/view14/M03/3E/0C/wKhkGWcj3xWABN_CAAE0HVgKdEM9544.jpg)
![异常处理课件_第5页](http://file4.renrendoc.com/view14/M03/3E/0C/wKhkGWcj3xWABN_CAAE0HVgKdEM9545.jpg)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
异常处理
•5.1Java异常处理的基础知识
5.L1错误与异常
5.L1异常处理机制
1.抛出异常2.捕获异常3.异常处理的类层次
•5.2异常类的产生、捕获与处理
•5.3异常的分类
•5.4抛出异常
•5.5自定义异常类
5.2异常类的产生、捕获与处理
1.异常的产生
2.使用try-catch-finally语句捕获与处理异常
3.Exception异常类的方法
publicclassTryl
(
publicstaticvoidmain(Stringargs[])
(
inti=0;
inta[]={5,6,7,8);
fbr(i=O;i<5;i++)
System.out.println(na["+i+n]=n+a[i]);
System.out.print(n3/0=n+(3/0));
ArraylndexOutOfBoundsException
D:\myjava>javacTryl.java
D:\myjava>javaTryl
a[0]=5
a[l]=6
a[2]=7
a[3]=8
Exceptioninthread"main"java.lang.ArraylndexOutOfBoundsException
atTryl.main(Tryl.java:8)
D:\myjava>javacTryl.java
D:\myjava>javaTryl
Exceptioninthread"main"java.lang.ArithmeticException:/byzero
atTryl.main(tryl.java:9)
使用try-catch-finally语句捕获与
处理异常
〈语句1>
)
catch(ExceptionTypee)
(
〈语句2>
}
finally
〈语句3>
publicclassTry2
{publicstaticvoidmain(Stringargs[])
{inti=0;
inta[]={5,6,7,8};
fdr(i=0;i<5;i++)
{try
{System.out.print(,,a[,'+i+,,]/n+i+,-,'+(a[i]/i));
)
catch(ArrayIndexOutOfBoundsExceptione)
{System.out.print("捕获数组下标窥界异常!”);
}
catch(ArithmeticExceptione)
{System.out.print("捕获算术异常!");
)
catch(Exceptione)
{System.out.print("捕获"+e.getMessage()+"异常!");
}〃显示异常信息
finally
{System.out.println(nfinallyi="+i);捕获算术异常!finallyi=0
}a[l]/l=6finallyi=l
}a[2]/2=3finallyi=2
System.out.println("继续!)a[3]/3=2finallyi=3
}幕会数组下标越界异常!finallyi=4
}继续!
publicclassTry2
{publicstaticvoidmain(Stringargs[])
{inti=0;
inta[]={5,6,7,8);
fdr(i=0;i<5;i++)
{try
{System.out.print(,,a[,,+i+,,]/n+i+,-n+(a[i]/i));
)
/*catch(ArrayIndexOutOfBoundsExceptione)
{System.out.print("捕获数组下标越界异常!”);
catch(ArithmeticExceptione)
{System.out.print("扁获算汆异常!)
}*/
catch(Exceptione)
{System.out.print("捕获"+e.getMessage()+"异常!");
〃显示异常信息
D:\myjava>javaTry2
finally
捕获/byzero异常!finallyi=0
{System.out.println(nfinallyi="+i);
}“a[l]/l=6finallyi=l
a[2]/2=3finallyi=2
a[3]/3=2finallyi=3
System,out.println("继续!”);病素null异常!finallyi=4
}
继续!
5.3异常的分类
•1.异常类层次图
程序对错误与异常的三种处理方式:
①程序不能处理的错误
②程序应避免而不捕获的异常
③程序必须捕获的异常
例5.3文件没有找到异常类
•2.常见的公用异常类
importjava.io.*:
publicclassTry3
(
publicstaticvoidmain(Stringargs[])
(
FilelnputStreamfis=newFileInputStream(nautoexec.batn);
System.out.println(nIcannotfoundthisfile!n);
D:\myjava>javacTry3.java
Try3.java:6:unreportedexceptionjava.io.FileNotFoundException;mustbecaught
ordeclaredtobethrown
FilelnputStreamfis=newFileInputStream("autoexec.bat");
A
1error
D:\myjava>
5.4抛出异常
publicclassTry4
(
publicvoidrun(bytek)〃求k的阶乘1!=1
(2!=2
bytey=l,i;
for(i=1;i<=k;i++)3!=6
y=(byte)(y*i);
System.out.println(k+n!=n+y);4!=24
}5!=120
publicstaticvoidmain(Stringargs[])
(6!=-48
Try4a=newTry4();7!=-80
for(bytei=l;i<10;i++)
a.run(i);8!=-128
9!=-128
1.使用throw语句抛出异常
publicclassTry5
(
publicvoidrun(bytek)
(
bytey=l,i=l;
System.out.print(k+n!=M);
fbr(i=l;iv=k;i++)
(
try
(
if(y>Byte.MAX_VALUE/i)//Integer类的常量
thrownewException(ttoverflow^^);〃溢出时抛出异常,12行
else
y=(byte)(y*i);
catch(Exceptione)
System.out.println(nexception:n+e.getMessage());
e.printStackTrace();〃显示异常信息
System.exit(O);
System.out.println(y);
)
publicstaticvoidmain(Stringargs[])i=1
21=2
3!=6
Try5a=newTry5();4!=24
for(bytei=l;i<10;i++)5!=120
a.run(i);〃29行6!=exception:overflow
java.lang.Exception:overflow
atTry5.run(Try5java:12)
atTry5.main(Try5.java:29)
2,抛出异常的方法与调用方法处理异常
publicclassTry6
(
publicvoidcalc(bytek)throwsException〃抛出异常
(
bytey=l,i=l;
System.out.print(k+M!=n);
fbr(i=l;i〈=k;i++)
if(y>Byte.MAX_VALUE/i)
thrownewException("overflow");〃10行
else
y二(byte)(y*i);
System.out.println(y);
publicvoidrun(bytek)〃捕获并处理异常
{try一
{calc(k);〃20行
}
catch(Exceptione)
(
System.out.println(uexception:n+e.getMessage());
e.printStackTrace();
System.exit(O);
}
}
publicstaticvoidmain(Stringargs[])
(
Try6a=newTry6();
fbr(bytei=l;i<10;i++)
a.run(i);〃33行
Try6的运行结果
D:\myjava>javaTry6
1!=1
2!=2
31=6
4!=24
5!=120
6!=exception:overflow
java.lang.Exception:overflow
atTry6.cale(Try6.java:10)
atTry6.run(Try6.java:20)
atTry6.main(Try6.java:33)
3.由方法抛出异常交系统处理
importjava.io.*;
publicclassTry3
(
publicstaticvoidmain(Stringargs[])throwlOException
FilelnputStreamfis=newFileInputStream("autoexec上at");
5.5自定义异常类
classOverflowExceptionextendsException〃自定义异常类
(
publicvoidprintMsg()
(
System.out.println(nexception:n+this.getMessage());
this.printStackTrace();
System.exit(O);
publicclassTry7
publ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国整木家装行业市场竞争格局、行业政策及需求规模预测报告
- 2025年中国汽车清洗系统行业发展现状调查、竞争格局分析及未来前景预测报告
- 排尿异常的观察与护理课件
- Unit 3 Learning better(复习课件)三年级英语下册同步高效课堂(人教PEP版·2024)
- 二零二五年度马铃薯种薯品牌授权与营销推广合同3篇
- 《隧道监理概述》课件
- 《酒类基础知识培训》课件
- 《柏威夏寺案讲座》课件
- 《颅脑断面解剖》课件
- 2025至2031年中国1,8-辛二醇行业投资前景及策略咨询研究报告
- 小学道德与法治课堂教学中提升学生核心素养策略
- 中水回用项目可行性研究报告
- 医院感染及其危害
- 2025年三人合伙投资合作开店合同模板(三篇)
- 基于主题式教学法的初级汉语综合课《我的低碳生活》教学设计
- 安徽省招生考试数学试卷
- 2024全国各省高考诗歌鉴赏真题及解析
- 高考日语阅读理解练习2篇-高考日语复习
- 印刷基础知识培训资料
- NB/T 11536-2024煤矿带压开采底板井下注浆加固改造技术规范
- 2024-2025学年人教版五年级(上)英语寒假作业(一)
评论
0/150
提交评论