Java 创建异常类;其他类别的不可视性

Java 创建异常类;其他类别的不可视性,java,exception,custom-exceptions,Java,Exception,Custom Exceptions,我的其他类对此包没有可见性。我还有三个类可能抛出其中一个异常,我不想将sans包声明上面的代码复制/粘贴到每个文件上。我想减少冗余并将其作为一个单独的文件 如何使它们可见?将内部类更改为静态,即: package Exception; public class Exceptions { public class NoSpaceException extends RuntimeException { public NoSpaceException(){

我的其他类对此包没有可见性。我还有三个类可能抛出其中一个异常,我不想将sans包声明上面的代码复制/粘贴到每个文件上。我想减少冗余并将其作为一个单独的文件


如何使它们可见?

将内部类更改为静态,即:

package Exception;

public class Exceptions {
    public class NoSpaceException extends RuntimeException {
        public NoSpaceException(){
            super("There is not enough room in the set for another element.");
        }
    }

    public class NotValidTypeException extends NullPointerException {
        public NotValidTypeException(){
            super("You can only add strings to a set.");
        }
    }

    public class NoItemException extends NullPointerException {
        public NoItemException(){
            super("There is no next element.");
        }
    }
}
或者,如果不想更改任何内容,可以通过异常实例创建实例:

异常=新异常();
RuntimeException e=exceptions.new NoItemException()

第一种方法更可取


另一个注意事项,考虑扩展比RunTimeExchange更具体的类(例如ILLalalAgMuMutExtExpRebug,ILLATALSTATE Excel等)。

如果您将您的异常类公开,它将是可访问的。@ CHATUX,它是公开的。那么它应该对其他类可见。我不明白为什么它不可见
public class Exceptions {
    public static class NoSpaceException extends RuntimeException {
        ...
    }

    public static class NotValidTypeException extends RuntimeException {
        ...
    }

    public static class NoItemException extends RuntimeException {
        ...
    }
}