第6章 异常处理要点.ppt

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java中的异常处理 * Case:例6.1 TryCatchSequence.java java中的异常处理 * Case:例6.1 TryCatchSequence.java 【程序解析】 编译后在命令行状态执行,第一次执行未带有任何参数,则args[0]不存在,程序执行到b=Integer.parseInt(args[0])语句时,发生数组下标越界异常,系统自动抛出ArrayIndexOutOfBoundsException异常,并退出try语句块,后面的语句不会被执行,该异常被第一个catch块捕获并处理,输出异常名及其发生的路径。最后执行finally语句块。 第二次执行参数为0,则args[0]获得值“0”,执行b=Integer.parseInt(args[0])语句不会产生异常,并使b=0,当执行c=a/b语句时,由于除数为0,产生算术运算异常,系统自动抛出Arithmetic- Exception异常,后面的语句不会被执行,退出try语句块,该异常被第二个catch块捕获并处理,输出异常名及其发生的路径。最后执行finally语句块。 第三次执行参数为5,此程序执行时不会产生任何异常,执行完try语句块中的所有语句之后,执行finally语句块。 java中的异常处理 * 常见的异常 ArithmeticException ArrayIndexOutOfBandsException ArrayStoreException IOException FileNotFoundException NullPointerException MalformedURLException NumberFormatException OutOfMemoryException 如果在使用能够产生异常的方法而没有捕获和处理,将不能通过编译 java中的异常处理 * 6.3.2 声明抛出异常 1. 抛出异常 在Java程序的执行过程中,如果出现了异常事件,就会生成一个异常对象。生成的异常对象将传递给Java运行时系统,这一异常的产生和提交过程称为抛出(throw)异常。 2. 声明抛出异常 一个方法不处理它产生的异常,而是沿着调用层次向上传递,由调用它的方法来处理这些异常,叫声明抛出异常(throws).声明抛出异常是一种消极的异常处理机制。 java中的异常处理 * 1. 抛出异常 抛出异常就是产生异常对象的过程,首先要生成异常对象,异常由虚拟机生成,或者由某些类的实例生成,也可以在程序中生成。 系统生成的异常一般被Java运行时系统自动抛出,由Java系统监测,在程序中使用try-catch块进行捕获,此种方式也称隐式抛出。 异常也可在方法中显式抛出,即手工抛出,尤其是用户自定义异常必须由用户自己抛出。显式抛出异常对象是通过throw语句实现的。 java中的异常处理 * 1. 抛出异常 显式抛出异常对象是通过throw语句实现的。 例如, 显式抛出系统定义异常: IOException e = new IOException(); throw e ; // 显式抛出输入输出异常 ? 抛出自定义异常对象: throw new myException(出现异常!); java中的异常处理 * 可以抛出的异常必须是Throwable或其子类的实例。下面的语句在编译时将会产生语法错误,因为String类不是Throwable类的直接或间接子类: throw new String(want to throw); 在同一个方法中抛出异常和处理异常。 Case:例6.2 SeqStack.java java中的异常处理 * 2. 声明抛出异常 如果在一个方法中生成了一个异常,但是这一方法并不确切地知道该如何对这一异常事件进行处理,这时,一个方法就应该声明抛弃异常,使得异常对象可以从调用栈向后传播,直到有合适的方法捕获它为止。 也就是说抛出异常的方法和处理异常的方法不是同一个方法时,则需声明抛出异常。 用方法声明中的throws子句指明。例如:   public int read () throws IOException{         ......   } java中的异常处理 * throws子句中同时可以指明多个异常,之间由逗号隔开。例如: public static void main(String args[]) throws IOException, IndexOutOfBoundsException {…} Case: 例6.3 SeqStack2.java java中的异常处理 * 对异常处理的进一步讨论: (1)对Error类或其子类的对象,程序中不必进行处理。 (2)对RuntimeExc

文档评论(0)

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

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

1亿VIP精品文档

相关文档