如何强制方法的实现在Java中的try-catch块中?

时间:2013-12-11 16:11:12

标签: java android eclipse

这可能是一个Java问题,或者它可能是一个Eclipse问题,我不是正面的。

我正在Android中创建自定义视图:HelpTextView extends View

我想覆盖View.setVisibility(),强制将HelpTextView.setVisibility()的调用写入try-catch (NullPointerException nex)块内。

我在方法中添加了一个throws声明(这是我认为会做的伎俩)以及throw命令但没有运气。这不起作用,因为它根本不会起作用(也许是压倒性的,就是这样做不起作用)或者我做错了什么?

3 个答案:

答案 0 :(得分:3)

NullPointerExceptionRuntimeException的子类。 RuntimeExceptionunchecked exception,意味着您无需捕捉它。

无论您如何声明方法,都不能强制捕获NullPointerException。

但是,您可以创建自己的Exception并强制抓住它。

答案 1 :(得分:3)

您不能覆盖方法并添加一个尚未在超级方法中声明的异常,除了RuntimeExceptions。

答案 2 :(得分:2)

你不能这样做,因为NullPointerException是一个RuntimeException,不需要被调用者捕获。

您最好的方法是实施自己的例外。

public class HelpTextView extends View {

    public setThisVisibility(boolean isVisible) throws MyNullPointerException {
        ...
    }

}

并且您的MyNullPointerException不能是RuntimeException