ch6-例外(Exception)处理分析.ppt

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

public class ExceptionDemo { public static void main(String args[]) { try { FileInputStream fis = new FileInputStream(test1.txt); int b; while( (b=fis.read())!=-1 ) { System.out.print(b); } fis.close(); }catch(FileNotFoundException e){ … }catch(IOException e){ … } } } }catch(IOException e){ … }catch(FileNotFoundException e){ … //永远不会被执行 } catch(Exception e) 捕获所有Exception catch(Throwable t) 捕获Exception和Error 例外总是由距离产生例外最近的匹配catch代码段处理 如果没有相应的例外处理, 则例外被交给上一层try代码段进行处理 例外处理的查找依据类型匹配原则顺序进行 第一个匹配的例外处理被执行,当例外处理执行完毕,程序接着最后一个catch代码段后的语句执行 例外处理的顺序影响到例外的处理 子类例外可被父类例外处理捕获 不要先捕获父类例外,再捕获子类例外 如果找不到相应的例外处理 非GUI程序将结束程序执行; Applet或GUI程序则回复到事件处理状态 3、捕获例外 —— catch语句 3、捕获例外 —— catch语句 尽量避免用一般类型作为catch中指定要捕获的类型。 一般应该按照try代码块中例外可能产生的顺序及其真正类型进行捕获和处理, 在例外处理中无法访问try代码段中声明的变量 因为此时try代码段已经退出了,例外处理所需要的任何信息一般都应该通过例外对象来传递 在使用方法时尽量直接处理该方法可能产生的例外 这样你的程序就会更健壮 在使用库方法之前,应该先仔细阅读说明文档 那里会介绍方法可能产生的例外以及例外产生的条件 在使用各种例外类之前也应该先仔细阅读说明文档 那里会介绍例外的具体含义及例外产生的条件 在catch代码段中产生的例外不是由相同try的后续catch代码段处理,而是由包含整个try-catch结构的上层try代码段检测并处理 可以把catch到的例外对象再次抛出,使上层try-catch结构继续处理该例外事件;也可以把例外对象转换为其它例外对象… catch (Exception e) { throw e; } try-catch机制不该被用于流程控制,例外情形应该是很稀少的,而不是经常性的 在catch代码段中的return语句用于退出方法,而不是返回到例外抛出点(throw point) 3、捕获例外 —— catch语句 public class TestTryCatchThrow { public static void main(String[] args) { try { if (args.length 1) { throw new Exception(“没有参数!”); } InputStream in = new FileInputStream(args[0]); // readInt可能产生IOException,EOFException int i = in.readInt(); System.out.println(“对出的整数为:”+); } catch (EOFException e) { System.out.println(“错误:文件格式存在问题!”); } catch (IOException e) { System.out.println(“错误:文件操作中出现问题!”); } catch (Exception e) { System.out.println(“错误:” + e.getMessage()); } ... } } 3、捕获例外 finally语句 捕获例外的最后一步是通过finally语句为例外处理

文档评论(0)

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

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

1亿VIP精品文档

相关文档