JAVA中未处理的异常类型

4 java exception-handling exception unhandled-exception

我在JAVA的同一个包中有两个类.

我有一个构造函数的一个类,我尝试创建自己:

public class ZooException extends Exception {

        public ZooException(String error) {
            super(error);
        }   
}
Run Code Online (Sandbox Code Playgroud)

另一个类需要在某一点调用此异常:

public class Zoo<T extends Animal>

Zoo(int capacity) {
        if (capacity <= 1) {
        throw new ZooException("Zoo capacity must be larger than zero");
    }
}
Run Code Online (Sandbox Code Playgroud)

我在这里注意到两件事

  1. 在ZooException类中,我收到一个警告:"可序列化类CageException不声明类型为long的静态最终serialVersionUID字段"
  2. 在Zoo类中,以"throw new"开头的行,我得到一个编译错误:"未处理的异常类型CageException"

关于我可以做什么来解决Zoo类中的这个错误的想法?先感谢您!

Wil*_*ill 11

您正在扩展Exception,检查异常,这意味着抛出该异常的任何方法都需要这样说:

Zoo(int capacity) throws ZooException {
Run Code Online (Sandbox Code Playgroud)

并且任何调用该构造函数的代码都必须try {} catch {}再次抛出它.

如果您不想检查它,请extends RuntimeException改用