try-catch语句
Java使用try-catch语句来处理异常,将可能出现的异常操作放在try-catch语句的try部分,一旦try部分抛出异常对象,或调用某个可能抛出异常对象的方法,并且该方法抛出了异常对象,那么try部分将立刻结束执行,转向执行相应的catch部分。所以程序可以将发生异常后的处理放在catch部分。try-catch语句可以由几个catch组成,分别处理发生相应异常。
try-catch语句的格式如下:
try{ 包括可能发生异常的语句 } catch(ExceptionSubClass1 e){ … } catch(ExceptionSubClass2 e){ … }
各个catch参数中的异常类都是Exception的某个子类,表明try部分可能发生的异常,这些子类之间不能有父子关系,否则保留一个含有父类参数的catch即可。
下面的例子给出了try-catch语句的用法,程序运行效果如图所示。
public class Hello{ public static void main(String args[]) { int n=0,m=0,t=1000; try { m=Integer.parseInt("8888"); n=Integer.parseInt("ab89"); //发生异常,转向catch t=7777; //t没有机会被复制 } catch(NumberFormatException e) { System.out.println("发生异常:"+e.getMessage()); } System.out.println("n="+n+",m="+m+",t="+t); try { System.out.println("故意抛出I/O异常!"); throw new java.io.IOException("我是故意的"); //故意抛出异常 //System.out.println("这个输出语句肯定没有机会执行,必须注释,否则编译出错"); } catch(java.io.IOException e) { System.out.println("发生异常:"+e.getMessage()); } } }