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());
}
}
}