private JsonRpcError getResolverForException(Throwable thrownException, Method method) { JsonRpcErrors errors = ReflectionUtil.getAnnotation(method, JsonRpcErrors.class); if (hasAnnotations(errors)) { for (JsonRpcError errorDefined : errors.value()) { if (isExceptionInstanceOfError(thrownException, errorDefined)) { return errorDefined; } } } return null; }
/** * {@inheritDoc} */ @Override public JsonError resolveError(Throwable thrownException, Method method, List<JsonNode> arguments) { JsonRpcError resolver = getResolverForException(thrownException, method); if (notFoundResolver(resolver)) { return null; } String message = hasErrorMessage(resolver) ? resolver.message() : thrownException.getMessage(); return new JsonError(resolver.code(), message, new ErrorData(resolver.exception().getName(), message)); }