本帖最后由 刘学明 于 2013-5-4 19:11 编辑
- import java.io.IOException;
- interface A
- {
- void method() throws RuntimeException; // 应该再抛出一个IOException
- }
- interface B
- {
- void method() throws IOException;
- }
- class InterfaceExceptionTest implements A,B
- {
- public void method() throws IOException // 因为是实现了 A和B两个接口 所以两个接口中的方法都必须实现
- {
- }
- }
复制代码 第一种情况 : public void method() throws RuntimeException 在声明抛出RuntimeException异常的时候编译通过 是因为RuntimeException是运行时异常 不会报错 交给JVM去自动调用异常机制。
第二种情况 public void method() throws IOException 在声明抛出IOException异常时编译失败 是因为IOException是编译时异常,当抛出后没有处理这个异常 因为是覆盖的接口中的方法 那么 它所实现的接口A中的method()方法也要抛出一个IOException异常 (和继承父类相似)
既:
interface A
{
void method() throws RuntimeException,IOException;
}
|