我一直在寻找一种方法来定制 @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sign_up);
FirebaseApp.initializeApp(Context)
上的Jackson
绑定引发的异常。
问题是当我发送一个字符串参数时,其中GAE
方法期望API
抛出Integer
的{{1}}。我想自定义异常引发的消息,但找不到方法。请帮忙。
例如:
Jackson
在上面的代码中,如果回声端点被有效载荷击中
则响应为
在这种情况下,有可能引发自定义异常或自定义消息
答案 0 :(得分:0)
为此,您需要注册DeserializationProblemHandler
ObjectMapper mapper = new ObjectMapper();
mapper.enable(SerializationFeature.INDENT_OUTPUT);
mapper.addHandler(new DeserializationProblemHandler() {
@Override
public Object handleWeirdStringValue(DeserializationContext ctxt, Class<?> targetType, String valueToConvert, String failureMsg) throws IOException {
System.out.println("Handle parse problem for value = " + valueToConvert);
throw new CanNotParseJsonException("Can not deserialise " + valueToConvert, null);
}
});
在其他情况下,您的异常应扩展JsonMappingException
并将其包装。示例异常:
class CanNotParseJsonException extends JsonMappingException {
public CanNotParseJsonException(String msg, Throwable problem) {
super(null, msg, problem);
}
}
请参阅: