0

我有一个类,它有一个显式的初始化方法和其他一些做实际工作的方法:

public class Worker {

    public void init(Context context) { /* ... */ };

    public void doWork() { /* ... */ };
}

Init必须在完成任何实际工作之前调用该方法,这在类和方法描述中记录。

DoWork如果在调用之前没有执行初始化,我想从方法中抛出一个异常。这种情况下正确的异常类型是什么?UnsupportedOperationExceptionIllegalStateException还是别的什么?

4

1 回答 1

3

IllegalStateException. 但理想情况下,尽量确保对象始终具有有效状态。:-) 在这种情况下,通过Context在构造函数中要求而不是单独的“init”函数:

public class Worker {

    // Note this is a constructor now, not a method
    public Worker(Context context) {
        /* ... */
    }

    public void doWork() {
        /* ... */
    }
}
于 2012-07-01T15:32:41.107 回答