91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • Feign調用時出現了異常但無法獲取異常信息的問題怎么解決

Feign調用時出現了異常但無法獲取異常信息的問題怎么解決

發布時間:2021-08-27 17:13:01 來源:億速云 閱讀:1503 作者:chen 欄目:開發技術

這篇文章主要介紹“Feign調用時出現了異常但無法獲取異常信息的問題怎么解決”,在日常操作中,相信很多人在Feign調用時出現了異常但無法獲取異常信息的問題怎么解決問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Feign調用時出現了異常但無法獲取異常信息的問題怎么解決”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

目錄
  • Feign獲取異常信息

    • 解決方案

      • 一、客戶端接口指定熔斷器處理工廠類

      • 二、ArticleFallBackFactory

      • 三、ArticleClientImpl

  • Feign中 fallback獲取400等異常信息及message

    • 1.調用第三方的方法

      • 2.fallback函數返回值的組合

        • 3.返回值

        Feign獲取異常信息

        最近在使用Feign調用時,出現了異常,原本使用的是fallback,直接返回了自定義的結果

        @Override
            public Result findUserNameById(String id) {
                return new Result(false, StatusCode.ERROR,"啊哦,用戶客戶端出現了異常");
            }

        但是無法獲取具體的異常信息

        解決方案

        將fallback換成fallbackFactory

        一、客戶端接口指定熔斷器處理工廠類
        /**
         * @author 
         * @date 2019/9/2215:37
         */
        @FeignClient(value = "weblog-article",fallbackFactory = ArticleFallBackFactory.class,configuration = FeignInterceptor.class)
        public interface ArticleClient {
            /**
             * 根據文章id封裝搜索文章實體
             * @param aid
             * @return
             */
            @GetMapping("article/client/packageArticle/{aid}")
            Result packageArticle(@PathVariable("aid") String aid);
        }
        二、ArticleFallBackFactory
        /**
         * @author yunshi
         * @date 2019/10/2010:37
         */
        @Component
        public class ArticleFallBackFactory implements FallbackFactory<ArticleClient> {
            @Override
            public ArticleClient create(Throwable throwable) {
                System.out.println("搜索微服務調用文章客戶端出錯:"+throwable.getMessage()==null?"":throwable.getMessage());
                throwable.printStackTrace();
                return new ArticleClientImpl() {
                    @Override
                    public Result packageArticle(String aid) {
                        return new Result(false, StatusCode.ERROR,"搜索微服務調用文章客戶端出錯 method:packageArticle");
                    }
                };
            }
        }

        有時候throwable的getMessage沒有捕獲到個別異常信息,干脆就直接打印了堆棧信息

        三、ArticleClientImpl
        /**
         * @author yunshi
         * @date 2019/9/2215:41
         */
        public interface ArticleClientImpl extends ArticleClient {
            
        }

        實操可用~

        Feign中 fallback獲取400等異常信息及message

        Spring cloud中當調用第三接口的時候,為防止超時一直等待,我們一般用斷路由的方式來進行超時返回,我一般用Spring Cloud Hystrix。在調用第三方的地方進行fallback進行聲明,然后重新fallback函數,配置超時時間,在超時時間內容沒有返回或者參數錯誤就進人到fallback里面進行處理。具體的做法,網上一大堆,可自行百度。

        然后第三方接口,在參數錯誤的時候,也是按400返回,尤其是json里面的數據key對應的value的合法性。而我們出錯的時候想把第三參數的錯誤信息返回,這樣就能很明確知道哪錯了,而不是認為是超時,下面進入正題:

        1.調用第三方的方法

        fallbackFactory中調用自己重寫的fallback,熔斷時會自動調用。

        Feign調用時出現了異常但無法獲取異常信息的問題怎么解決

        2.fallback函數返回值的組合

        自己重寫的熔斷函數中,重新create函數,其中throwable 會記錄捕獲的所有異常,我們通過getMessage可得到我們的信息,具體可以參考FallbackFactory接口的實現。

        Feign調用時出現了異常但無法獲取異常信息的問題怎么解決

        3.返回值

        把fallback函數的返回值反倒返回值的msg中返回,這樣調用接口的時候就可以得到第三方返回的錯誤信息,進行調整了。

        Feign調用時出現了異常但無法獲取異常信息的問題怎么解決

        到此,關于“Feign調用時出現了異常但無法獲取異常信息的問題怎么解決”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

        向AI問一下細節

        免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

        AI

        昌黎县| 滕州市| 城口县| 大丰市| 尤溪县| 宁波市| 邢台县| 汉寿县| 德格县| 龙州县| 镇平县| 喀喇沁旗| 富源县| 双桥区| 广南县| 上林县| 阿城市| 临高县| 和龙市| 会昌县| 海淀区| 临海市| 资阳市| 忻城县| 洱源县| 托克托县| 泗洪县| 普安县| 松桃| 晋州市| 青冈县| 阿拉善盟| 罗源县| 嫩江县| 南岸区| 新野县| 阿荣旗| 伊吾县| 水富县| 攀枝花市| 富顺县|