快速业务通道

Java编程那些事儿83——异常处理语法2 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-24

Java编程那些事儿83——异常处理语法2

时间:2010-03-15 csdn 陈跃峰

10.3.3 捕获异常及异常处理

在整个异常处理机制中,异常在系统中进行传递,传递到程序员认为合适的位置,就捕获到该异常,然后进行逻辑处理,使得项目不会因为出现异常而崩溃。

为了捕获异常并对异常进行处理,使用的捕获异常以及处理的语法格式为:

try{  //逻辑代码 }catch(异常类名 参数名){  //处理代码 }

在该语法中,将正常的程序逻辑代码书写在try语句块内部进行执行,这些代码为可能抛出异常的代码,而catch语句中书写对应的异常类的类名,在catch语句块内部书写出现该类型的异常时的处理代码。

程序执行到try-catch语句时,如果没有发生异常,则完整执行try语句块内部的所有代码,而catch语句块内部的代码不会执行,如果在执行时发生异常,则从发生异常的代码开始,后续的try语句块代码不会执行,而跳转到该类型的异常对应的catch语句块中。

示例代码如下:

String s = "123"; try{  int n = Integer.parseInt(s);  System.out.println(n); }catch(NumberFormatException e){  System.out.println("该字符串无法转换!"); }

在该示例代码中,Integer类的parseInt方法可能会抛出NumberFormatException,因为parseInt方法的声明如下:

public static int parseInt(String s) throws NumberFormatException

这里字符串s转换为int没有发生异常,则程序执行完try语句块内部的代码,程序的运行结果为:

123

如果将字符串对象s的值修改为”abc”,则运行上面的代码,则parseInt方法执行时将抛出NumberFormatException,则调用parseInt方法语句后续的try语句块中的代码不会执行,程序的执行流程跳转到捕获NumberFormatException异常的catch语句块内部,然后执行该catch语句块内部的代码,则程序的执行结果是:

该字符串无法转换!

Java编程那些事儿83——异常处理语法2(2)

时间:2010-03-15 csdn 陈跃峰

这就是最基本的捕获异常和异常处理的代码结构。使用try语句捕获程序执行时抛出的异常,使用catch语句块匹配抛出的异常类型,在catch语句块内部书写异常处理的代码。

在实际程序中,也可以根据异常类型的不同进行不同的处理,这样就需要多个catch语句块,其结构如下:

try{  //逻辑代码 } catch(异常类名1 参数名1){  //处理代码1 } catch(异常类名2 参数名2){  //处理代码2 }  …… }catch(异常类名n 参数名n){  //处理代码n }

例如:

String s = "123"; try{  int n = Integer.parseInt(s);  System.out.println(n);  char c = s.charAt(4);  System.out.println(c); }catch(NumberFormatException e){  System.out.println("该字符串无法转换!"); }catch(StringIndexOutOfBoundsException e){  System.out.println("字符串索引值越界"); }

在执行时,按照catch语句块书写的顺序从上向下进行匹配,直到匹配到合适的异常就结束try-catch语句块的执行。

在实际执行时,就可以根据捕获的异常类型不同,书写不同的异常处理的代码了。使用该语法时需要注意,如果这些异常类直接存在继承关系,则子类应该书写在上面,父类应该书写在下面,否则将出现语法错误。例如:

String s = "123"; try{  int n = Integer.parseInt(s);  System.out.println(n);  char c = s.charAt(4);  System.out.println(c); }catch(Exception e){ }catch(NumberFormatException e){ //语法错误,异常已经被处理  System.out.println("该字符串无法转换!"); }catch(StringIndexOutOfBoundsE

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号