0,编译期异常和运行期异常的区别?
编译期异常:一定要处理,不然便宜不通过
运行期异常:可以处理,也可以不处理
1,throws/throw的区别? throws: 用在方法声明后面,跟的是异常类名 可以跟多个异常类名,用逗号隔开 表示抛出异常,由该方法的调用者处理 throws表示出现异常的一种可能,不一定会发生这些异常 throw: 用在方法体内,跟的是异常对象名 只能抛出一个异常对象名 表示抛出异常,由方法体内的语句处理 执行throw则一定抛出了某种异常 static void method() throws Exceptipn{ if(){throw new Exception()} }
2, 异常注意事项
1,子类重写父类方法时,子类的方法必须抛出相同的异常/父类异常的子类
2,子类不能抛出父类没有的异常
3,如果被覆盖的方法没有抛出异常,那么子类的方法绝对不可以抛出异常,如果子类有异常抛出,只能用try,不能用throws
3,如何抛出message
class MyException extends RuntimeException{
public MyException(){}
public MyException(String message){super(message);}}
调用时:
throw new MyException("illegal score! ");