欢迎来到天天文库
浏览记录
ID:19833929
大小:101.50 KB
页数:36页
时间:2018-10-06
《北大计算机系java讲义第4章java异常课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章异常北京大学计算机系代亚非第4章异常4.1异常的概念4.2异常的分类4.3捕获异常4.4声明异常4.5抛出异常4.6创造自己的异常4.7总结24.1异常的概念什么是异常?异常实际上是程序中错误导致中断了正常的指令流的一种事件.没有处理错误的程序:read-file{openTheFile;determineitssize;allocatethatmuchmemory;closeTheFile;}34.1异常的概念以常规方法处理错误openFiles;if(theFilesOpen){determinethelenthofthefile;if(got
2、TheFileLength){allocatethatmuchmemory;if(gotEnoughMemory){readthefileintomemory;if(readFailed)errorCode=-1;elseerrorCode=-2;}elseerrorCode=-3;}elseerrorCode=-4;}elseerrorCode=-5;44.1异常的概念观察前面的程序你会发现大部分精力花在出错处理上了.只把能够想到的错误考虑到,对以外的情况无法处理程序可读性差出错返回信息量太少54.1异常的概念用异常的形式处理错误read-File;{
3、try{openTheFile;determineitssize;allocatethatmuchmemory;closeTheFile;}catch(fileopenFailed){dosomething;}catch(sizeDetermineFailed){dosomething;}catch(memoryAllocateFailed){dosomething;}catch(readFailed){dosomething;}catch(fileCloseFailed){dosomething;}}64.1异常的概念和传统的方法比较异常的优点:1.把
4、错误代码从常规代码中分离出来2.把错误传播给调用堆栈3.按错误类型和错误差别分组4.系统提供了对于一些无法预测的错误的捕获和处理5.克服了传统方法的错误信息有限的问题method1method2method3method4产生异常传递处理异常74.1异常的概念.classExcepTest{publicvoidmain(Stringargs[]){intb=0;inta;try{a=4/b;}catch(ArithmeticExceptione){System.out.println(“dividedby0”);}}}try{URLurl=newURL(
5、http://www.hit.edu.cn/”,”hit.gif”);}catch(MalformedURLEceptione){badURL=true;repaint();}84.2异常的分类异常是一个对象,它继承自Throwable类,所有的Throwable类的子孙类所产生的对象都是例外.Error:由Java虚拟机生成并抛出,Java程序不做处理.RuntimeException(被0除等系统错误,数组下标超范围):由系统检测,用户的Java程序可不做处理,系统将它们交给缺省的异常处理程序.Exception(程序中的问题,可预知的):Java编
6、译器要求Java程序必须捕获或声明所有的非运行时异常throw:用户自己产生异常94.2异常的分类.ThrowableErrorExceptionRuntimeException缺省的异常处理程序由用户捕获或声明并处理不做处理用户自己产生的异常要处理104.3捕获异常捕获并处理异常try{//接受监视的程序块,在此区域内发生//的异常,由catch中指定的程序处理;}catch(要处理的异常种类和标识符){//处理异常;}catch(要处理的异常种类和标识符){//处理异常;}114.3捕获异常常见的异常ArithmeticExceptionArrayI
7、ndexOutOfBandsExceptionArrayStoreExceptionIOExceptionFileNotFoundExceptionNullPointerExceptionMalformedURLExceptionNumberFormatExceptionOutOfMemoryException如果在使用能够产生异常的方法而没有捕获和处理,将不能通过编译124.3捕获异常例:编写Java程序,包含三种异常算术异常,字符串越界,数组越界观察输出信息:每个异常对象可以直接给出信息134.3捕获异常classfirst_exception{pu
8、blicstaticvoidmain(Stringargs[]){charc;i
此文档下载收益归作者所有