- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
JavaCh5-异常处理
第五章 异常处理主要内容重点理解Java的异常处理机制, 掌握抛出和处理异常的方法难点异常处理机制,自定义异常类5.1 异常处理基础5.1.15.1.2错误和异常异常处理机制的必要性5.1.1 异常处理机制的必要性语法错程序语法错误,编译时能发现,也称编译错语义错(运行错)语法正确而语义错误,编译时不能发现,运行时才被发现逻辑错编译、运行都可,但结果与预期不符,系统无法发现程序错误、发现时刻及错误处理原则5.1.1 异常处理机制的必要性面向过程语言和面向过程语言的错误处理方式比较面向过程语言面向对象语言不能保证及时发现错误并制止错误蔓延提供异常处理机制,对发生的异常进行“事后处理”将正常代码与错误代码分离程序错误防范的责任推给程序员将错误分门别类地加以处理能够处理运行错,使程序从错误中恢复或继续运行只能靠“事前防范”能将错误延调用栈向上传播5.1.1 异常处理机制的必要性Java语言的安全性 lecture/src/ch5/C501/ZeroTest.javaZeroTest.java lecture/src/ch5/C501/OutofBoundsTest.javaOutofBoundsTest.java5.1.2 错误和异常错误(error)程序执行时遇到硬件、OS、其他程序或操作的错误,程序无法处理错误,也无法继续执行在硬件和操作系统正常时,程序遇到的运行错异常(exception)错误和异常5.1.2 错误和异常Java错误和异常类Throwable类:描述所有“可被当作异常抛出”的对象所具备的东西detailMessage//异常描述信息public Throwable() public Throwable(String message)public String getMessage()public String toString()public void printStackTrace()public synchronized native Throwable fillInStackTrace()//添加新的异常栈跟踪信息5.1.2 错误和异常Java错误和异常类Error类:错误类,由虚拟机抛出给系统,除特殊情况不需捕捉处理NoClassDefFoundErrorOutOfMemoryError5.1.2 错误和异常Java错误和异常类Exception类:异常类,每种异常对应Exception的一个子类,创建的异常对象包含错误的位置和特征信息等ArrayIndexOutOfBoundsException 数组下标越界异常NullPointerException 空指针异常ArithmeticException 算术异常 lecture/src/ch5/C501/ExceptionMethods.javaExceptionMethods.java5.2 异常处理措施5.2.12.2.55.2.25.2.45.2.3抛出异常异常遗失、异常重掷和异常的局限自定义异常类异常处理语句Java异常处理机制5.2.1 Java异常处理机制异常处理机制当程序执行过程中产生异常时,运行系统将抛出相应的异常类对象(也可以由用户指出何时抛出何种异常对象)用户程序或运行系统可以捕获该异常类对象,到相应的处理代码出处理该异常(处理异常的代码可能在捕获异常catch处,也可能在函数的调用栈中递归查找能处理此异常事件的程序为止)5.2.2 异常处理语句可能产生“异常”的语句try{……}catch(ExceptionType1 e){……}catch(ExceptionType2 e){……}catch(ExceptionTypeN e){……}[finally{……}]用来处理“异常”的语句当可能产生多种异常时,可以有多个catch代码块,由系统依次匹配不管异常是否发生都执finally代码块不能执行的唯一情况是:在被保护的代码块中执行了System.exit(0)try-catch-finally lecture/src/ch5/C502/ExceptionDemo1.java lecture/src/ch5/C502/ExceptionDemo1.javaExceptionDemo1.java5.2.2 异常处理语句1.假设此处产生“异常”,系统将抛出一个异常对象e,e是某个异常类的实例try{ …… …… ……}catch(ExceptionType1 e){……}catch(ExceptionType2 e){……}catch(ExceptionTypeN e){……}[finally{……}]2.在catch子句中依次查找e是某个ExceptionType类或其子类的的实例,则有相应的catch子句捕获e并处理一个异常对象只能
文档评论(0)