如何从onClickListener的方法中抛出异常

时间:2015-08-17 16:22:56

标签: android

我收到以下错误(据我所知):Overriden method does not throw ...

我想知道如何在View.onClickListener的onClick方法中抛出异常表单(如果可能的话)。

2 个答案:

答案 0 :(得分:2)

如果初始声明不包含throw声明,则不能在重写方法中抛出已检查异常。

但是,您可以抛出未经检查的异常,这是一个异常,编译器不会检查它是否被处理:

@Override
public void onClick(View target) {
    throw new RuntimeException();
}

或继承RuntimeException的任何异常,内置或自定义。此类内置例外列表为here

答案 1 :(得分:0)

您可以随时启动例外

throw new Exception();

您甚至可以实现自己的例外并获取其参数

public class MyOwnException extends Exception {
    private int data;

    public MyOwnException(int data) {
        super();
        this.data = data;
    }

    public int getData() {
        return data;
    }
}

...

try {
    throw new MyOwnException(10);
} catch {MyOwnException moe) {
    int i = moe.getData();
    // i = 10;
}

请记住,如果方法可能抛出异常,则必须声明它

public void sampleMethod throws MyOwnException {
    ...
}