本帖最后由 Rockray 于 2013-10-31 09:30 编辑
- class Demo {
- public static void func(){
- try {
- throw new Exception();
- System.out.println("A");
- }
- catch(Exception e) {
- System.out.println("B");
- }
- }
- public static void main(String[] args) {
- try {
- func();
- }
- catch(Exception e) {
- System.out.println("C");
- }
- System.out.println("D");
- }
- }
复制代码 上面的代码中为什么会出现如下编译错误呢?
而下面的代码一样没执行到一个输出语句,却编译通过了,这是什么原因?- class ExceptionDemo {
- public static void main(String[] args){
- Demo d = new Demo();
-
- try{
- int f = d.div(5,0);
- System.out.println(f); //同样没被执行到,为什么编译通过了,而上面的代码编译失败
- }
- catch(ArithmeticException e){
- System.out.println(e.toString());
- System.out.println("除零啦");
- }
-
- System.out.println("over");
- }
- }
- class Demo {
- int div(int a,int b) throws ArithmeticException {
- return a/b; //会出现算数异常,除数不为零
- }
- }
复制代码 |