第6章-异常讲述.ppt

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章-异常讲述

目标 异常概述 什么是异常 异常是指由于程序中的错误而导致正常的程序流程中断的一种事件。如:除数为0,数组越界,文件找不到等都属于异常。 Java异常分类 从理论的角度Java中异常分为两类,分别为 : Error(错误):JVM系统内部错误、资源耗尽等严重情况 Exception(异常):因编程错误或偶然的外在因素导致的一般性问题,例如:对负数开平方根、空指针访问、试图读取不存在的文件、网络连接中断等。 异常概述-1 从编程角度考虑可以将异常(Exception)分为以下两类 : 非检查型(unchecked)异常 :是指编译器不要求强制处置的异常,该异常是因设计或实现方式不当导致的问题,是程序员的原因导致的,可以避免这种问题的产生 检查型(checked)异常 :是指编译器要求必须处置的异常,是程序在运行时由于外界因素造成的一般性异常,该类异常是Exception类型及其子类(RuntimeException类及其子类除外) 从开发应用角度考虑可以将异常分为以下两类 : 系统异常:系统异常在性质上比应用异常更加严重,前者通常和应用逻辑无关,而是底层出现了问题,如数据库服务器的异常终止等。 应用异常:应用异常是由于违反了商业规则或者业务逻辑而导致的错误。例如,一个被锁定的用户试图登入应用。 Java中的异常体系 Java异常处理机制 Java语言提供两种处理异常的机制: 捕获异常 :在程序运行过程中系统得到一个异常对象时,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码,找到处理这种类型异常的方法后,运行时系统把当前异常对象交给这个方法进行处理,该过程称为捕获(catch)异常。 声明抛出异常 :当运行时系统得到一个异常对象,如果当前方法并不知道如何处理所出现的异常或者此时处理不合适,则可在定义方法时,声明抛出(throws)异常。 异常处理 Java中关于异常处理涉及到关键字 try、catch、throw、throws和finally 异常处理-1 异常实例 使用0做除数而引发的ArithmeticException的异常情况 异常处理-2 try/catch 在Java程序中,如果在出现异常的地方进行异常处理,可以在方法中添加两类代码块,即try、catch,通常发生异常的代码都放在try代码块中,try代码块中包含的是可能引起一个或者多个异常的代码,try代码块的功能就是监视异常的发生。如果try块中的代码产生异常时则由catch块进行捕获并处理,也就是说catch代码块中的代码用于处理try代码块中抛出的具体异常类型的异常对象。 语法格式如下: 异常处理-3 try/catch演示 异常处理-4 多重catch处理异常 在一个程序中可能会引发多种不同类型的异常,此时可以提供多个catch语句用来捕获用户感兴趣的异常。当引发异常时,程序会按顺序来查看每个catch语句块,并执行第一个与异常类型匹配的catch语句块,其后的catch语句块将被忽略。 语法格式如下: 异常处理-5 嵌套异常处理 代码块的某一部分引起一个异常,而整个代码块可能又引起另外一个异常。此时就需要将一个异常处理程序嵌套到另一个中。在使用嵌套的try块时,将先执行内部try块,如果没有遇到匹配的catch块,则将检查外部try块的catch块。 异常处理-6 finally 在某些特定的情况下,不管是否有异常发生,总是要求某些特定的代码必须被执行,比如进行数据库连接时,不管对数据库的操作是否成功,最后都需要关闭数据库的连接并释放内存资源。这就需要用到finally关键字,finally不能单独使用必须和try结合使用,有两种用法: try-finally try-catch-finally (较为常用) 语法格式如下: 异常处理-7 finally实例演示 异常处理-8 throw/throws 在Java程序中如果要明确地引发异常,则需要用到throw或throws语句 : throw语句 :throw语句用来明确地抛出一个“异常”。 throws语句:如果一个方法methodName()可以引发异常,而它本身并不对该异常进行处理,那么该方法必须声明将这个异常抛出,以使程序能够继续执行下去。这时候就要用到throws语句。 throws语句的格式如下: 自定义异常 Java语言本身提供的异常太贴近于技术,很多情况下需要构建自己的业务异常体系。 如下构造了一个余额不足的业务异常: 自定义异常-1 当帐户类的取款方法中,可以抛出余额不足的异常: 小结 第六章 异常 理

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档