Java中的异常可以认为是另外一种返回值,所以也跟返回值一样,1、不算在方法签名里,2、子类的方法抛出的异常范围不能超过父类的方法抛出的异常范围,子类也可以不抛出异常(子类的方法的返回值必须与父类方法的返回值一样或是父类方法返回值的子类)。
对于unchecked exceptions (RuntimeException, Error, and their subclasses),由于不需捕获,所以当子类显式throws时可以认为是没有抛出异常,子类、父类的方法可以任意抛出。
其他规则参考“异常的限制,异常说明在类继承是怎样的?”和“Java继承中重写方法的异常抛出”。