1) try catch finally中的finally不管在什么情况之下都会执行,执行的时间是在程序return 之前.
2) Java 编译器不允许有显示的执行不到的语句块,比如return之后就不可能再有别的语句块(分支不属于此列) 所以以下程序编译
实例捕捉一个错误
public class MainClass {
public static void main(String args[]) {
int d, a;try
{
d = 0;
a = 42 / d;
System.out.println("This will not be printed.");
}catch (ArithmeticException e)
{
System.out.println("Division by zero.");
}
System.out.println("After catch statement.");
}
}
try可以没有catch,try还可以和finally{}搭配,但是有try必须有catch或者finally中的一个。
还有,如果不想在这个方法里处理,而在调用的方法里一起处理的话,可以直接在方法的签名也就是方法名后的小括号后面,加throws Exception,把异常抛给别人
实例
import java.util.Random;
public class MainClass {
public static void main(String args[]) {
int a = 0, b = 0, c = 0;
Random r = new Random();for (int i = 0; i < 32000; i++) {
try {
b = r.nextInt();
c = r.nextInt();
a = 12345 / (b / c);
} catch (ArithmeticException e) {
System.out.println("Division by zero.");
a = 0; // set a to zero and continue
}
System.out.println("a: " + a);
}
}
}
不错的博客http://blog.csdn.net/lovecj6185/article/details/4461516