我在服务器端使用这种方法来通过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){
}