第一,调用带有throws关键字的方法时,必须放在try代码块中进行异常监测吗?如果不进行异常监测会出现编译错误码?
第二,书上说,除了RunTimeExcepinon和Error两种异常,如果方法抛出其他异常就必须在方法定义时用throws语句进行声明,否则无法通过编译,问题是,所谓异常是在程序运行时出现的,那么在编译的时候,编译器怎么会知道方法中会产生哪类异常呢?
第三,当我在try-catch的其中一个catch代码块中通过throw语句重新抛出某一种类型的异常(与该catch语句处理的异常类型不同),那么该catch语句后面的catch语句能进行捕获吗?还是我必须在该try-catch代码块外再建立一个try代码块进行捕获?

解决方案 »

  1.   

    第一,自己实验
    第二,编译器知道可能出现异常
    第三,catch后面的catch语句不行,再建一个可以,还是要实验啊亲
      

  2.   

    异常分为编译时异常和运行时异常,比如类型转换、输入错误等都是JVM在运行这些代码前进行错误检测,如果没有错误,才会进入运行时;运行时异常一般是逻辑异常,如数组越界、内存溢出等都是运行时异常。
      

  3.   

    1 要么捕获,要么调用代码所在的方法抛出,否则编译报错
    2 编译器根据所有代码中的调用方法可能抛出的异常,可以知道可能会抛出的异常。
    3 catch代码块内部可以嵌套try catch
      

  4.   

    在main方法上放throws Exception,里面就不用管了
      

  5.   

    亲,
    1、不见得会报错,但是用户用的时候可能报错,比如说2/0的时候就会报错,但是这个错误通常只有程序员能看懂!
    2、当你出错的时候,编译器会自动找到需要抛出的异常,这个时候就会报错!
    3、一种异常只能被try catch中的一个catch所捕捉,不一定非要使用多个try catch,但是如果在程序里面有两个或两个以上需要抛出且没有相互连接的异常的时候,就要用多个try catch!友情附送一条,别信6楼的!如果你2/0抛出的异常更改为除数不能为零,而在另外一种异常的时候还是会显示出除数不能为零!正确的方法是找出2/0的异常(ArithmeticException)然后显示出除数不能为零!