快速业务通道

Java异常处理及其应用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
零或数组越界,则分别引发运行时异常(NullPointerException、 ArithmeticException)和 ArrayIndexOutOfBoundException。

Java异常处理及其应用(3)

时间:2010-10-26 IBM 张银利

Java 异常的处理

在 Java 应用程序中,对异常的处理有两种方式:处理异常和声明异常。

处理异常:try、catch 和 finally

若要捕获异常,则必须在代码中添加异常处理器块。这种 Java 结构可能包含 3 个部分,

都有 Java 关键字。下面的例子中使用了 try-catch-finally 代码结构。

1 import java.io.*; 2 public class EchoInputTryCatchFinally { 3   public static void main(String args[]){ 4     System.out.println("Enter text to echo:"); 5     InputStreamReader isr = new InputStreamReader(System.in); 6     BufferedReader inputReader = new BufferedReader(isr); 7     try{ 8       String inputLine = inputReader.readLine(); 9       System.out.println("Read:" + inputLine); 10     } 11     catch(IOException exc){ 12       System.out.println("Exception encountered: " + exc); 13     } 14     finally{ 15       System.out.println("End. "); 16   } 17 } 18}

其中:

try 块:将一个或者多个语句放入 try 时,则表示这些语句可能抛出异常。编译器知道可能要发生异常,于是用一个特殊结构评估块内所有语句。

catch 块:当问题出现时,一种选择是定义代码块来处理问题,catch 块的目的便在于此。catch 块是 try 块所产生异常的接收者。基本原理是:一旦生成异常,则 try 块的执行中止,JVM 将查找相应的 JVM。

finally 块:还可以定义 finally 块,无论运行 try 块代码的结果如何,该块里面的代码一定运行。在常见的所有环境中,finally 块都将运行。无论 try 块是否运行完,无论是否产生异常,也无论是否在 catch 块中得到处理,finally 块都将执行。

try-catch-finally 规则:

必须在 try 之后添加 catch 或 finally 块。try 块后可同时接 catch 和 finally 块,但至少有一个块。

必须遵循块顺序:若代码同时使用 catch 和 finally 块,则必须将 catch 块放在 try 块之后。

catch 块与相应的异常类的类型相关。

一个 try 块可能有多个 catch 块。若如此,则执行第一个匹配块。

可嵌套 try-catch-finally 结构。

在 try-catch-finally 结构中,可重新抛出异常。

除了下列情况,总将执行 finally 做为结束:JVM 过早终止(调用 System.exit(int));在 finally 块中抛出一个未处理的异常;计算机断电、失火、或遭遇病毒攻击。

声明异常

若要声明异常,则必须将其添加到方法签名块的结束位置。下面是一个实例:

public void errorProneMethod(int input) throws java.io.IOException {    //Code for the method,including one or more method    //calls that may produce an IOException }

这样,声明的异常将传给方法调用者,而且也通知了编译器:该方法的任何调用者必须遵守处理或声明规则。声明异常的规则如下:

必须声明方法可抛出的任何可检测异常(checked exception)。

非检测性异常(unchecked exception)不是必须的,可声明,也可不声明。

调用方法必须遵循任何可检测异常的处理和声明规则。若覆盖一个方法,则不能声明与覆盖方法不同的异常。声明的任何异常必须是被覆盖方法所声明异常的同类或子类。

Java异常处理及其应用(4)

时间:2010-10-26 IBM 张银利

Java 异常处理的分类

Java 异常可分

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号