Java 实例 - Finally的用法
Java Finally用法一般与try一起使用,在程序进入try块之后,无论程序是因为异常而中止或其它方式返回终止的,finally块的内容一定会被执行
以下实例演示了如何使用 finally 通过 e.getMessage() 来捕获异常(非法参数异常):
ExceptionDemo2.java 文件
public class Main {
public static void main(String[] argv) {
new Main().doTheWork();
}
public void doTheWork() {
Object o = null;
for (int i=0; i<5; i++) {
try {
o = makeObj(i);
} catch (IllegalArgumentException e) {
System.err.println("Error: ("+ e.getMessage()+").");
return;
} finally {
System.err.println("都已执行完毕");
if (o==null)System.exit(0);
}
System.out.println(o);
}
}
public Object makeObj(int type) throws IllegalArgumentException {
if (type == 1)
throw new IllegalArgumentException ("不是指定的类型: " + type);
return new Object();
}
}
public static void main(String[] argv) {
new Main().doTheWork();
}
public void doTheWork() {
Object o = null;
for (int i=0; i<5; i++) {
try {
o = makeObj(i);
} catch (IllegalArgumentException e) {
System.err.println("Error: ("+ e.getMessage()+").");
return;
} finally {
System.err.println("都已执行完毕");
if (o==null)System.exit(0);
}
System.out.println(o);
}
}
public Object makeObj(int type) throws IllegalArgumentException {
if (type == 1)
throw new IllegalArgumentException ("不是指定的类型: " + type);
return new Object();
}
}
以上代码运行输出结果为:
都已执行完毕 java.lang.Object@7852e922 Error: (不是指定的类型:1). 都已执行完毕
尊贵的董事大人
英文标题不为空时 视为本栏投稿
需要关键字 描述 英文标题