- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章异常处理资料
?Java处理的异常可以大致分为两类:Error及其子类、Exception。Java 对于不同的异常采取不同的处理策略 Error 很难恢复的严重错误,一般不由程序处理。 RuntimeException 程序设计或实现上的问题,如数组越界、算术运算异常、空指针异常等。对于这类异常,处理的策略是纠正错误。 其它例外 通常是由环境因素引起的,如文件不存在,无效URL等。这类异常经常是由用户的误操作引起的,可以在异常处理中处理。 异常处理方法 异常处理是指程序获得异常并处理,然后继续程序的执行。为了使程序安全,Java要求如果程序中调用的方法有可能产生某种类型的异常,那么调用该方法的程序必须采用相应动作处理异常。 异常处理有两种方法 捕获并处理异常 将方法中产生的异常抛出 1、捕获并处理异常 try语句块 ?一般形式: try { Java statements //一条或多条可能产生例外的java语句。 } ? try 语句后必须跟随至少一个catch或finally语句块。 catch语句块 ? Catch语句块提供错误处理。 ?一般格式: catch (SomeThrowableObject variableName) { Java statements } SomeThrowableObject:能够被处理的例外类名,必须是throwable类的子类。 variableName: 是例外处理程序中能够引用的代表被捕获例外的变量名称。 Java statements: 当捕获到例外时执行的java语句。 finally语句块 finally语句定义了一个程序块,可放于try{}或catch{}块之后。 finally 语句块无论是否发生异常都要执行,一般用于关闭文件或释放其他系统资源。 finally语句可以省略。 针对多种异常的通用异常处理 catch (IOException e) { System.err.println(Caught IOException: + e.getMessage()); } finally { if (out != null) { System.out.println(Closing PrintWriter); out.close(); } else { System.out.println(PrintWriter not open); } } } 2、将方法中产生的异常抛出 声明异常 异常是在方法的声明中使用throws子句进行声明的,具体格式如下: returnType methodName([paramlist]) throws exceptionList 抛出异常 异常的抛出是通过throw语句来实现的。该语句的一般格式如下: throw someThrowableObject 执行throw语句后,运行流程立即停止,系统转向调用者程序,检查是否有catch子句能匹配的Throwable实例。如果找到相匹配的实例,系统转向该子句;如果没有找到,则转向上一层的调用程序。 示例: public Object pop() throws EmptyStackException { Object obj; if (size == 0) throw new EmptyStackException(); obj = objectAt(size - 1); setObjectAt(size - 1, null); size--; return obj; } 抛出例外的throw语句: throw someThrowableObject 自定义异常类 自定义异常的必要性 当我们在开发各种Java应用程序的时候,除了花费大量时间设计类的API以使自己的程序包易于理解与使用之外,还应该投入同样大的精力考虑和设计程序包中类可能产生的异常。从而使得类在出现错误时尽量的强壮。 自定义异常的原则 Java异常类体系中不包含所需要的异常类型。 用户需要将自己所提供类的异常与其他人提供类的异常进行区分。 类中将多次抛出这种类型的异常。 如果使用其他程序包中定义的异常类,将影响程序包的独立性与自包含性。 自定义异常类与Java异常类的融合 由于Java异常处理机制只能处理Throwabl
文档评论(0)