如何解决java - 尝试初始化抛出异常的类时出现 ClassNotFoundException
源代码如下:
public class Main {
public static void main(String[] args) {
MyClass mycclass = new MyClass();
}
}
class MyClass {
public void foo() throws Exception {
throw new Exception();
}
}
有人可以帮助我理解为什么 MyClass
初始化程序会抛出 ClassNotFoundException
但是当我从 throw new Exception()
函数中删除 foo
语句时它可以工作。
解决方法
您声明 foo
可能抛出任何类型的 Exception
。
任何可能抛出已检查异常(但不捕获它)的方法都需要使用 throws
关键字声明这一点。
您的 main
方法调用 foo
和 foo
可能会引发异常。 main 方法没有捕捉到它,所以它会向调用者抛出异常。
因此,main
方法也需要具有 throws Exception
声明。
出现ClassNotFoundException
的原因是由于编译失败或无效而找不到主类。
如果您查看编译器输出,您应该会看到一条错误消息,告诉您缺少 throws
声明(未捕获的异常)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。