/**
* 这里的try catch异常十分有趣,IllegalArgumentException作为Exception的派生类
* 是可以放在catch (Exception e)之前,但不可以放在之后,下面的divied4方法同理
*/
try {
int result=divied4(5,0);
}catch (IllegalArgumentException e){
System.out.println("IllegalArgumentException异常出现");
}catch (Exception e){
System.out.println("Exception异常出现");
}
public static int divied4(int num1,int num2) throws Exception{
try {
int result=num1/num2;
return result;
}catch (Exception e){
System.out.println("出现异常");
throw new IllegalArgumentException("参数异常");
}
}
除了以上代码注释中的问题,还有就是,如果子类覆盖了超类的一个方法,子类方法中声明的异常类型不能比超类中更通用(也就是说,子类中应该抛出更加特定的异常,或者根本不抛出任何异常)。需特别说明:如果超类方法中没有抛出任何检查型异常,子类也不能抛出任何检查型异常,