RegisterFailedException

RegisterFailedException

我在服务器端使用这种方法来通过RPC与客户端代码进行通信。

@Override
public void registerStudent(param1, param2...) throws IllegalArgumentException {

    //some code here

    try {
        //some code here
    } catch (ConstraintErrorViolationException e) {
        throw new RegisterFailedException();
    }
}


我有这段代码处理失败。

@Override
public void onFailure(Throwable caught) {
    displayErrorBox("Could not register user", caught.getMessage());
}


当前,onFailure()函数无法区分随机异常和我要处理和处理的特定异常,即RegisterFailedException

如何正确处理两种不同的错误?

最佳答案

所以你例外

public class RegisterFailedException extends RuntimeException {

    public RegisterFailedException () {
        super();
    }
}


并且您的方法将引发异常,例如

throws new RegisterFailedException();


然后在onFailure()中检查

if (caught instanceof RegisterFailedException){

}

09-25 21:39