相关疑难解决方法(0)

为什么不能覆盖方法抛出比重写方法更广泛的异常?

我正在阅读Kathe sierra的SCJP 6书,并且遇到了在重写方法中抛出异常的解释.我完全没有得到它.任何人都可以向我解释一下吗?

重写方法不得抛出新的或更广泛的已检查异常,而不是重写方法声明的异常.例如,声明FileNotFoundException的方法不能被声明SQLException,Exception或任何其他非运行时异常的方法覆盖,除非它是FileNotFoundException的子类.

java

95
推荐指数
5
解决办法
10万
查看次数

为什么不能降低Java子类中方法的可见性?

当您在子类中重写方法时降低方法的可见性时,为什么编译器会给出错误消息?

java polymorphism overriding subclassing

42
推荐指数
2
解决办法
1万
查看次数

如何从java线程中抛出一个检查过的异常?

嘿,我正在写一个网络应用程序,我在其中读取一些自定义二进制格式的数据包.我正在开始一个后台线程来等待传入的数据.问题是,编译器不允许我将任何代码抛出(检查)异常run().它说:

run() in (...).Listener cannot implement run() in java.lang.Runnable; overridden method does not throw java.io.IOException

我希望异常杀死该线程,并让它在父线程的某处被捕获.这是可能实现还是我必须处理线程的每个异常?

java exception thread-exceptions

40
推荐指数
5
解决办法
7万
查看次数