欢迎来到天天文库
浏览记录
ID:45236756
大小:222.50 KB
页数:18页
时间:2019-11-11
《JAVA大学教学课件第七章异常处理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《Java语言程序设计》第七章:异常处理7.1什么是异常-1异常是程序执行过程中出现的正常事件,是程序所遇到的轻微错误,即各种意外情况。比如:1、用户输入错误;2、文件找不到;3、内存不足;4、算术运算错;5、数组下标越界;6、网络连接中断;7、……异常发生时,我们应该编写代码来处理异常,并保证程序继续执行,而不是让程序中断。7.1什么是异常-2程序举例:publicclassHelloWorld{publicstaticvoidmain(Stringargs[]){inti=0;Stringgreetings[]={"Helloworld!",
2、"No,Imeanit!","HELLOWORLD!!"};while(i<4){System.out.println(greetings[i]);i++;}}}7.1什么是异常-3程序运行结果:c:myproject>javaHelloWorldHelloworld!No,Imeanit!HELLOWORLD!!java.lang.ArrayIndexOutOfBoundsException:3atHelloWorld.main(HelloWorld.java:12)程序出现以上错误,就会在所处方法中产生一个异常对象。这个异常对象包括错误的
3、类型,错误出现时程序的运行状态以及对该错误的详细描述。异常处理允许程序捕获异常,处理它们,然后继续程序执行。7.2异常的分类-1java.lang.Throwable类充当所有异常对象的父类,可以使用异常处理机制将这些对象抛出并捕获。在Throwable类中定义方法来检索与异常相关的错误信息,并打印显示异常发生的栈跟踪信息。它有Error和Exception两个基本子类,如下图所示:7.2异常的分类-27.2异常的分类-3每个异常的目的描述如下:a.Error表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这
4、样的情况。b.RuntimeException表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。比如,如果数组索引扩展不超出数组界限,那么,ArrayIndexOutOfBoundsException异常从不会抛出。因为一个正确设计和实现的程序从不出现这种异常,通常对它不做处理。这会导致一个运行时信息,应确保能采取措施更正问题,而不是将它藏到谁也不注意的地方。c.其它异常表示一种运行时的困难,它通常由环境效果引起,可以进行处理。例子包括文件未找到或无效URL异常(用户打了一个错误的URL),如果用户误打了什么东西,两者都
5、容易出现。这两者都可能因为用户错误而出现,这就鼓励程序员去处理它们。7.3常见异常Java编程语言提供几种预定义的异常。下面是可能遇到的更具共同性的异常中的几种:ArithmeticException—整数被0除,运算得出的结果。inti=12/0;NullPointerException—当对象没被实例化时,访问对象的属性或方法的尝试。Dated=null;System.out.println(d.toString());ArrayIndexOutofBoundsException—访问超过数组大小范围的一个元素的尝试。NegativeArra
6、ySizeException—创建带负维数大小的数组的尝试。SecurityException—典型地被抛出到浏览器中,SecurityManager类将抛出applets的一个异常,该异常企图做下述工作(除非明显地得到允许):1.访问一个本地文件2.打开主机的一个socket,这个主机与服务于applet的主机不是同一个。3.在运行时环境中执行另一个程序7.4异常处理-1Java编程语言提供了一个异常处理的有效机制。1、try和catch语句try{//codethatmightthrowaparticularexception}catch(M
7、yExceptionTypee){//codetoexecuteifaMyExceptionTypeexceptionisthrown}catch(Exceptione){//codetoexecuteifageneralExceptionexceptionisthrown}7.4异常处理-22、finally语句finally语句定义一个总是执行的代码块,无论是否出现异常,无论出现那种异常,甚至try语句块含有returnbreakcontinue等跳转语句时,finally语句均需被执行。try{//codethatmightthrowa
8、particularexception}catch(Exceptione){//codetoexecuteifageneralExcep
此文档下载收益归作者所有