- 1、本文档共31页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
处理异常情况
处理异常情况 学习目标 了解异常的概念 掌握捕获异常的方法 了解Java中常见的异常 掌握自定义异常的方法 了解如何在方法中抛出异常 了解运行时异常种类 了解异常处理的使用原则 一、异常机制概述 在进行程序设计时,错误的产生是不可避免的,如何处理错误?把错误交给谁去处理?程序又该如何从错误中恢复?这是任何程序设计语言都要解决的问题。 所谓错误,是在程序运行过程中发生的异常事件,比如除0溢出、数组越界、文件找不到等,这些事件的发生将阻碍程序的正常运行。 为了加强程序的健壮性和容错性,程序设计时,应充分考虑可能发生的异常事件并作出相应的处理。 异常基本概念 异常是在程序运行过程中发生的异常事件,比如除0溢出,数组越界,文件找不到等。 异常处理使用 try,catch ,finally ,throw,throws等5个关键字来尝试可能未成功的操作,处理失败,以及在事后清理资源。 Java把各种不同的异常事件进行分类,把异常事件当成对象来处理。 Java异常机制的优点 把各种不同的异常事件分类,利用类的层次性可以把多个具有相同父类的异常统一处理,也可以针对不同的异常分别处理,提高了错误处理的灵活性。 Java的异常处理机制将“常规”代码和处理异常的代码分开,增强了程序的可读性(想象一下C语言用if-else语句处理异常的情景)。 可以灵活处理异常,有能力处理异常就捕获处理,没有能力就抛出,由方法调用者处理 二、异常类及其子类 须查异常和免检异常 检查异常 Throwable、Exception 免检异常 Error、RuntimeException 当在一个方法的代码中抛出一个检查异常时,这个异常或者被方法中的try-catch结构捕获,或者在方法的throws语句中声明 编译器检查程序保证所有须检查的异常都被程序显式的处理 当须查异常没有被抛出(throws)或捕获(try...catch)时,会引起编译错误。 常见异常及其用途 2-1 常见异常及其用途 2-2 一些常用的异常类 Error (all in java.lang) AWTError (in java.awt) Exception (in java.lang) EmptyStackException (in java.util) MissingResourceException (in java.util) NoSuchElementException (in java.util) Exception IOException (in java.io) 参照API文档 三、异常处理 Error和运行时异常 可以不做处理 使用try-catch-finally语句捕获异常 将可能引发异常的语句放在 try 块内,而处理异常的相应语句则放在 catch 块内。 通过throws子句声明可能抛出异常,用throw语句抛出异常 在方法声明中包含throws子句,通知潜在调用者,如果发生了异常,必须由调用者处理。 1、运行时异常 RuntimeException类及其子类可以不做处理,系统会把生成的异常对象交给默认的异常处理程序,在标准输出上显示异常的内容以及发生异常的位置。 eg:public class RuntimeExceptionPro{ public static void main(String[] args) {int i=0; int r=4/i;//除数不能为0 } } 示例:运行时异常 public class RuntimeExceptionProc {public static void main(String args[]) {int i=0; int a[]={5,6,7,8}; for(i=0;i=5;i++) System.out.println(a[+i+]=+a[i]); //数组越界,运行时异常 System.out.println(“3/0=”+(3/0));//异常一旦发生,程序终止,这句没有执行到 } } 常见的运行时异常 2、捕获及处理异常—使用try-catch-finally 基本格式 try { 可能产生异常的语句 } // 不能有其它语句分隔 catch (Etype1 e1) { 处理异常1的语句} catch (Etype2 e2) { 处理异常2的语句 } …… finally { 事后处理语句 } 示例:try-catch捕获和处理异常 public class Try1 { public static void m
文档评论(0)