欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot捕獲feign拋出異常的方法

 更新時(shí)間:2025年04月20日 09:31:01   作者:考慮考慮  
使用Springboot時(shí),使用feign客戶端作為http請求工具時(shí),當(dāng)接口拋出異常信息時(shí),使用全局異常是捕獲不了異常的,本文小編給大家介紹了SpringBoot捕獲feign拋出異常的方法,需要的朋友可以參考下

前言

使用Springboot時(shí),使用feign客戶端作為http請求工具時(shí),當(dāng)接口拋出異常信息時(shí),使用全局異常是捕獲不了異常的

feign異常全局捕獲

定義一個(gè)異常類

@Getter
public class BusinessException extends RuntimeException {

    private String message;

    private int code;

    public BusinessException(String message, int code) {
        this.message = message;
        this.code = code;
    }

    public BusinessException(String message) {
        super(message);
        this.message = message;
    }



}

捕獲feign請求異常

@Slf4j
@Configuration
public class FeignExceptionConfig {

    @Bean
    public ErrorDecoder feignError() {
        return (key, response) -> {
            if (response.status() != HttpStatus.OK.value()) {
                try {
                    String data = IOUtils.toString(response.body().asInputStream());
                    log.error("feign請求錯(cuò)誤,返回值為:{{}}", data);
                    throw new BusinessException(data);
                } catch (BusinessException e) {
                    throw e;
                } catch (Exception e) {
                    log.error("異常信息為:", e);
                    throw new RuntimeException(e);
                }
            }

            // 其他異常交給Default去解碼處理
            // 這里使用單例即可,Default不用每次都去new
            return new ErrorDecoder.Default().decode(key, response);
        };
    }

}

或者在全局異常捕獲加上這個(gè)

@ExceptionHandler(FeignException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public String handleFeignException(FeignException ex) {
    log.error("feign異常處理信息", ex);
    return ex.contentUTF8();
}

總結(jié)

feign客戶端是一個(gè)強(qiáng)大的請求工具,但是異常處理有時(shí)候得額外處理

到此這篇關(guān)于SpringBoot捕獲feign拋出異常的方法的文章就介紹到這了,更多相關(guān)SpringBoot捕獲feign異常內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解SpringMVC中的異常處理機(jī)制

    詳解SpringMVC中的異常處理機(jī)制

    本篇文章將為大家詳細(xì)介紹一下springmvc的異常處理機(jī)制,用到了ControllerAdvice和ExceptionHandler注解,感興趣的小伙伴可以了解一下
    2022-07-07
  • java同步器AQS架構(gòu)AbstractQueuedSynchronizer原理解析

    java同步器AQS架構(gòu)AbstractQueuedSynchronizer原理解析

    這篇文章主要為大家介紹了java同步器AQS架構(gòu)AbstractQueuedSynchronizer的底層原理及源碼解析,有需要的朋友可以借鑒參考下,希望能有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-03-03
  • Java報(bào)錯(cuò)Java.text.ParseException的解決方法匯總

    Java報(bào)錯(cuò)Java.text.ParseException的解決方法匯總

    在Java開發(fā)的復(fù)雜世界中,錯(cuò)誤處理是開發(fā)者必須面對的關(guān)鍵挑戰(zhàn)之一,其中,Java.text.ParseException就像一個(gè)隱藏在代碼叢林中的陷阱,常常讓開發(fā)者們陷入困惑,本文給大家介紹了Java報(bào)錯(cuò)Java.text.ParseException的解決方法,需要的朋友可以參考下
    2024-10-10
  • Java8中的Stream流式操作教程之王者歸來

    Java8中的Stream流式操作教程之王者歸來

    這篇文章主要給大家介紹了關(guān)于Java8中Stream流式操作的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Java8具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • java根據(jù)當(dāng)前時(shí)間獲取yyyy-MM-dd?HH:mm:ss標(biāo)準(zhǔn)格式的時(shí)間代碼示例

    java根據(jù)當(dāng)前時(shí)間獲取yyyy-MM-dd?HH:mm:ss標(biāo)準(zhǔn)格式的時(shí)間代碼示例

    在Java中可以使用java.time包中的LocalDateTime類和DateTimeFormatter類來獲取并格式化當(dāng)前時(shí)間為yyyy-MM-dd?HH:mm:ss的格式,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • RabbitMQ之死信隊(duì)列深入解析

    RabbitMQ之死信隊(duì)列深入解析

    這篇文章主要介紹了RabbitMQ之死信隊(duì)列深入解析,?死信,顧名思義就是無法被消費(fèi)的消息,字面意思可以這樣理解,一般來說,producer將消息投遞到 broker 或者直接到 queue 里了,consumer 從 queue 取消息進(jìn)行消費(fèi),需要的朋友可以參考下
    2023-09-09
  • Java?精煉解讀時(shí)間復(fù)雜度與空間復(fù)雜度

    Java?精煉解讀時(shí)間復(fù)雜度與空間復(fù)雜度

    對于一個(gè)算法,其時(shí)間復(fù)雜度和空間復(fù)雜度往往是相互影響的,當(dāng)追求一個(gè)較好的時(shí)間復(fù)雜度時(shí),可能會(huì)使空間復(fù)雜度的性能變差,即可能導(dǎo)致占用較多的存儲(chǔ)空間,這篇文章主要給大家介紹了關(guān)于Java時(shí)間復(fù)雜度、空間復(fù)雜度的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • SpringBoot使用Sa-Token實(shí)現(xiàn)權(quán)限認(rèn)證

    SpringBoot使用Sa-Token實(shí)現(xiàn)權(quán)限認(rèn)證

    本文主要介紹了SpringBoot使用Sa-Token實(shí)現(xiàn)權(quán)限認(rèn)證,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • 解決maven打包排除類不生效maven-compiler-plugin問題

    解決maven打包排除類不生效maven-compiler-plugin問題

    總結(jié):在Spring Boot項(xiàng)目B中作為項(xiàng)目A的依賴時(shí),排除啟動(dòng)類不生效的原因是被其他類引用或父POM引入,解決方法是跳過test編譯或注釋掉@SpringBootTest(classes={BApplication.class})
    2024-11-11
  • SpringMVC多個(gè)模塊404報(bào)錯(cuò)問題及解決

    SpringMVC多個(gè)模塊404報(bào)錯(cuò)問題及解決

    這篇文章主要介紹了SpringMVC多個(gè)模塊404報(bào)錯(cuò)問題及解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09

最新評論