@FeignClient(name = "client")
public interface SomeClient {
@RequestLine("GET /?q={q}")
void execute(URI baseUrl, @Param("q") String q) throws SomeExceptionInMyCode;
}
public class SomeExceptionInMyCode extends Exception{
private final int statusCode;
private final String reason;
private final String body;
// getters and setters
}
是否会在失败的情况下自动尝试解码此异常的HTTP响应?或者抛出一些ExceptioninMyCode
是无用的,可以在没有任何影响的情况下删除。
我在我的代码中搜索了一下,这个异常从来没有创建过。
是否会在失败的情况下自动尝试解码此异常的http响应?
不,它不像这样工作,并且不会抛出SomeExceptionMyCode
。throws
子句是无用的。即使endpoint从其实现中抛出此异常,它也将被包装为FeignException
的原因。
处理虚假客户端异常的正确方法是使用自定义异常处理实现errordecoder
:
public class StashErrorDecoder implements ErrorDecoder {
@Override
public Exception decode(String methodKey, Response response) {
if (response.status() >= 400 && response.status() <= 499) {
// return 4XX exception
}
if (response.status() >= 500 && response.status() <= 599) {
// return 5XX exception
}
}
}
@RestControllerAdvice
public class ExceptionHandler {
@ExceptionHandler(FeignException.class)
public String handleFeignStatusException(FeignException e, HttpServletResponse response) {
// ...
}
}
我刚刚通过nodejs.org上的软件包安装了node和npm,每当我试图搜索或安装npm时,它都会抛出以下错误,除非我执行该命令。我觉得这是一个权限问题?我已经是管理员了。
我只是通过nodejs.org上的包安装了node和npm,每当我试图搜索或安装带有npm的东西时,它会抛出以下错误,除非我sudo该命令。我觉得这是个权限问题?我已经是管理员了。
Perl有一个未定义函数的概念。已声明但未定义的函数。 这个函数现在存在于符号表中,它可以用来解析方法调用。但是为什么这个“特征”会存在呢?在C语言中,这是因为函数是类型检查的,有时您希望在定义之前进行调用(例如解决循环依赖关系)。但是Perl没有这样的特性,所有的函数符号都是在运行时而不是编译时解析的。 > 如果不是原型,为什么它会存在? 为什么在方法解析中使用未定义的子程序?为什么不完全忽略它
我有两个Kafka集群,第一个--使用“SASL SCRAM-SHA-256”机制进行身份验证,另一个--没有为其设置配置。 为了能够连接到Clickhouse中的< code>Kafka-A,我配置了一个< code>config.xml文件,如下所示: 在这一点上,我发现我无法使用Kafka引擎表连接到Kafka-B。当我尝试发生打印以下消息的错误时: storage Kafka(XXX):[
我正在使用Spring框架和Hibernate开发一个web应用程序。我的问题是,我经常收到404错误,这是因为我在代码库的某个地方犯了一个错误,但控制台中没有异常消息。正因为如此,我很难找到错误在哪里,因为项目已经变得非常大,手动尝试找到问题是不切实际的。我假设是Spring导致了这个问题,所以我的问题是:是否有某种方法可以启用更详细的错误消息?谢谢
在我的应用程序中,我必须知道,从一个列表中有一个服务器地址,这些地址是向上的。我发现的解决方案是从Spring引导执行器调用健康endpoint,对它们每个。JSon reponse是: 在应用程序的其他部分,我使用Spring-Cloud中的Feign客户机,这些客户机使用注释定义,它工作得很好: 不幸的是,这种配置不允许重用同一个客户机来调用不同地址上的同一个endpoint。因此,我必须定义