Java接口抛出异常但接口实现不抛出异常?

2024-01-09

我读到这段代码,其中接口抛出异常,但实现它的类不会抛出或捕获异常,这是为什么? java中它合法还是安全?

import java.rmi.*;
public interface MyRemote extends Remote {
    public String sayHello() throws RemoteException;
}

import java.rmi.*;
import java.rmi.server.*;
public class MyRemoteImpl extends UnicastRemoteObject implements MyRemote{
    public String sayHello() {
        return "Server says, 'Hey'";
    }
    public MyRemoteImpl() throws RemoteException {}
    public static void main (String[] args) {
        try {
             MyRemote service = new MyRemoteImpl();
             Naming.rebind("RemoteHello", service);
        } catch(Exception ex)
        {
            ex.printStackTrace();
        }
    }
}

实现和扩展的一般规则是您可以使新类或接口“限制更少”,但不能“限制更多”。如果您将处理异常的要求视为限制,则不声明异常的实现的限制较少。任何编写接口代码的人都不会在您的类上遇到问题。

— 斯坦·詹姆斯


作为讨论的一部分http://www.coderanch.com/t/399874/java/java/Methods- throwing-Exception-Interface http://www.coderanch.com/t/399874/java/java/Methods-throwing-Exception-Interface

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java接口抛出异常但接口实现不抛出异常? 的相关文章

随机推荐