对抛出异常这一块比较模糊。

来源:1-5 Java 中的异常抛出以及自定义异常

_Jack_Han_

2016-02-05 12:47

public void divide(int one,int two) throws Exception{
	if(two==0)
		throw new Exception("两数相除,除数不能为0.");
	else
		System.out.println("两数相除结果为:"+one/two);
}
public void computer(){
	try{
		divide(5,0);
	}catch(Exception e){
		System.out.println(e.getMessage());
	}finally{
		System.out.println("Happy New Year!");
	}
}
public static void main(String[] args){
	BlueException be=new BlueException();
	be.computer();
}
这一段catch(Exception e){
System.out.println(e.getMessage());
}没有运行,怎么回事呢?


写回答 关注

3回答

  • okgermany
    2016-02-05 13:15:21
    已采纳

    public class ExceptionTest {

    public void divide(int one,int two) throws Exception{

       if(two==0)

           throw new Exception("两数相除,除数不能为0.");

       else

           System.out.println("两数相除结果为:"+one/two);

    }

    public void computer(){

       try{

           divide(5,0);

       }catch(Exception e){

           System.out.println("出现异常了"+e.getMessage());

       }finally{

           System.out.println("Happy New Year!");

       }

    }

    public static void main(String[] args){

       ExceptionTest be=new ExceptionTest();

       be.computer();

    }


    }

    //运行结果:出现异常了 两数相除,除数不能为0. 

    //       Happy New Year!

    这是我用你的程序试了一下,你所说的部分运行了 ,我觉过程应该是divide函数抛出异常,然后computer()函数进行捕捉 打印e.getMessage()也就是异常信息,因为你是直接输出e.getMessage() 所以和你divide函数内写的异常信一样,你误以为是 

    catch(Exception e){

    System.out.println(e.getMessage());

    }没有运行 


    _Jack_... 回复怒放的生命0...

    thanks

    2016-07-06 22:26:43

    共 4 条回复 >

  • qq_硬汉_5
    2016-07-03 11:04:59

     System.out.println("出现异常了"+e.getMessage()); 这句代码中e.getMessage()是啥意思啊 没看懂

  • okgermany
    2016-02-05 15:23:26

    至于意义我也不是理解的很透彻 我也是初学者 我觉得只能在以后的实际项目中具体理解了。

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题