1. 程式人生 > >java-Exception異常處理-springboot專案

java-Exception異常處理-springboot專案

Exception異常處理改造

介面呼叫返回異常結果如下

Response Body返回引數:

新建傳入Id後返回業務Code:

12345678910  {
    "entityName": "virtualRules",
    "errorKey": "business",
    "statusCode": 7002,
    "type": "http://www.jhipster.tech/problem/problem-with-message",
    "title": "新增介面,ID必須為空",
    "status": 400,
    "message": "error.business"
, "params": "virtualRules" }

Response Headers返回引數:

1234567891011121314  {
    "pragma": "no-cache",
    "date": "Wed, 25 Apr 2018 08:50:07 GMT",
    "x-content-type-options": "nosniff",
    "transfer-encoding": "chunked",
    "content-type": "application/problem+json",
    "cache-control": "no-cache, no-store, max-age=0, must-revalidate"
, "status_code": "7002", "connection": "keep-alive", "status_msg": "dmlydHVhbFJ1bGVzLGJ1c2luZXNzLOaWsOWinuaOpeWPo++8jElE5b+F6aG75Li656m6", "x-xss-protection": "1; mode=block", "x-application-context": "boss-gateway:swagger,local:8080", "expires": "0" }

具體修改如下:

找到ExceptionTranslator.java

1. 修改feignClientException方法(feign呼叫異常處理類)

1234567891011121314151617181920212223242526272829303132333435  @ExceptionHandler(HystrixRuntimeException.class)
    public ResponseEntity feignClentException(HystrixRuntimeException ex){
     if(ex.getCause() instanceof FeignException){
            log.debug("異常資訊 {}",ex);
            FeignException e = (FeignException) ex.getCause();</font>
            HttpHeaders httpHeaders = new HttpHeaders();
            if(e.status()==400){
                String msg = e.getMessage();
                String msgJson = msg.substring(msg.indexOf("{"));
                JSONObject jsonObject = JSONObject.parseObject(msgJson);
                String title = jsonObject.getString("title");
                String statusCode = jsonObject.getString("statusCode");
                httpHeaders.add("status_code", statusCode);
                httpHeaders.add("status_msg", getBase64Code(title));
            }else {
                httpHeaders.add("status_code", e.status() + "");
                httpHeaders.add("status_msg", getBase64Code(e.getMessage()));
            }
            return new ResponseEntity(null,httpHeaders,HttpStatus.valueOf(e.status()));
        }
        return this.globalExceptionHandler(ex);
    }

新增程式碼

  if(e.status()==400){
        String msg = e.getMessage();
      String msgJson = msg.substring(msg.indexOf("{"));
        JSONObject jsonObject = JSONObject.parseObject(msgJson);
        String title = jsonObject.getString("title");
        String statusCode = jsonObject.getString("statusCode");
        httpHeaders.add("status_code", statusCode);
        httpHeaders.add("status_msg", getBase64Code(title));
    }else {}

該方法為了解決feign之間相互呼叫異常處理。異常程式碼如下:

1234567891011  status 400 reading ConnectVariableManager#insertConnectVariable(String,ConnectVariableDTO); content:
  {
    "entityName" : "bControllerVariables",
    "errorKey" : "VariableNameexists",
    "type" : "http://www.jhipster.tech/problem/problem-with-message",
    "title" : "連線變數名稱已存在!",
    "statusCode": 7002,
    "status" : 400,
    "message" : "error.VariableNameexists",
    "params" : "bControllerVariables"
   }

2.業務異常修改方式

12345678  @ExceptionHandler(RequestAlertException.
            
           

相關推薦

java-Exception異常處理-springboot專案

Exception異常處理改造介面呼叫返回異常結果如下Response Body返回引數:新建傳入Id後返回業務Code:12345678910 { "entityName": "virtualRules", "errorKey": "business",

java-exception異常處理

Java標準庫內建了一些通用的異常,這些類以Throwable為頂層父類。Throwable又派生出Error類和Exception類。 錯誤:Error類以及他的子類的例項,代表了JVM本身的錯誤。錯誤不能被程式設計師通過程式碼處理,Error很少出現。 異常:Exception以及他的子類,代表程

JAVA exception異常處理+I/O操作讀寫檔案 筆記

JAVA  異常處理  JAVA的異常5個關鍵字try...catch...finally..throw..throws 捕獲異常 宣告異常 丟擲異常 try 執行可能產生異常的程式碼 throws

Java異常處理,日期處理

出了 指定 初始化 ring () next height 常見問題 自定義 Java異常處理 異常:異常就是Java程序在運行過程中出現的錯誤。 異常由來:問題也是現實生活中一個具體事務,也可以通過java 的類的形式進行描述,並封裝成對象。其實就是Java對不正常情

java異常處理機制 throw拋出自定義業務邏輯異常 throws繼續拋出 catch捕獲後會自動繼續拋向調用方法

異常處理機制 ... cep super finally sta exc ace 避免 package com.swift; public class Exception_TestC { public static void main(String[] arg

Java異常處理機制(下)

return語句 異常處理 如果 exce java urn 冒泡 開始 追溯 異常,是在執行函數時出錯導致的,而函數是層層嵌套的層級調用,形成調用棧。因此,多層嵌套函數中一個出現錯誤,其余的也都會出錯不能執行。當這些函數全部輸出異常信息時就形成異常追蹤棧。 最開始發生異常

Java基礎——異常處理

外部 程序員 基於 新的 常對象 ret 調用棧 span ice   在程序運行過程中,如果JVM檢測出一個不可能執行的操作,就會出現運行時錯誤。   在Java中,運行時錯誤會作為異常拋出。異常就是一個對象,表示阻止正常進行程序執行的錯誤或者情況。如果異常沒有被處理,那

Java學習---異常處理的學習

沒有 splay finall dea 收集 lap img 常見 描述 基礎知識 任何一門計算機程序設計語言都包括有絕對正確和相對正確的語句。絕對正確: 指任何情況下, 程序都會按照流程正確執行;相對正確: 程序的運行受到運行環境的制約, 在這種情況下, 需

Java開發知識之Java異常處理

ssa run 範圍 com 行處理 意思 操作 spa exce       Java開發知識之Java的異常處理 一丶異常概述   在講解異常之前,我們要搞清楚.什麽是異常. 通俗理解就是我們編寫的程序出問題了.進行處理的一種手段. 比如我們的QQ.有的時候就崩潰了.比

JAVA異常處理

程式中的錯誤可以分為三類: 編譯錯誤,邏輯錯誤和執行時錯誤 編譯錯誤:是由於沒有遵循Java語言的語法規則而產生的,這種錯誤要在編譯階段排除,否則程式不可能執行 邏輯錯誤:編譯正常,也能執行,但結果不是人們期待的 執行時錯誤:執行過程中出現的錯誤,也有可能由邏輯錯誤引起 異常

java知識點——java異常處理

程式中總是有問題。 為了在程式執行過程中能夠正常執行,Java提供的異常處理機制被用來檢測可能的異常,處理異常並導致程式正常執行。 這是Java異常處理。 一、可捕獲的異常 在Java中可以捕獲的異常分為可控異常和執行時異常   1. 可控式異常 在Java中,那些可以預見的錯誤可以

java異常處理

init value etc .com level dem com ini war AboutException的測試: 1 package test; 2 import javax.swing.*; 3 4 class AboutException { 5

java學習——異常處理機制

  public class ExceptionDemo2 { public static void main(String[] args) { // TODO Auto-generated method stub int

JAVA高階--異常處理概念和異常處理機制

什麼是異常   程式執行的過程中發生的一些不正常事件 異常分類     Throwable       Error  錯誤         Exception           IOException            

Java學習——異常處理

學習視訊:https://www.imooc.com/learn/110   一.異常介紹 1.Java異常分類 Throwable     Error(出現程式徹底崩潰)         VirtualM

Java異常處理

異常的分類 非檢查異常(unckecked exception):Error 和 RuntimeException 以及他們的子類。javac在編譯時,不會提示和發現這樣的異常,不要求在程式處理這些異常。所以如果願意,我們可以編寫程式碼處理(使用try…catch…finally

Java學習---異常處理

      import java.util.Scanner; public class MyExceptionTest { public static void check(Square A) throws WrongException

Java異常處理機制

一、什麼是java異常? java異常指在程式執行時可能出現的一些錯誤,如:檔案找不到、網路連線失敗、非法引數等。異常是一個事件,它發生在程式執行期間,中斷了正在執行的程式的正常指令流。Java通過API中Throwable類的眾多子類描述各種不同的異常。因而,Java異常

java基礎 -------異常處理機制

                                                                             異常處理機制 異常發生的原因   使用者輸入了非法資料 要開啟的檔案不存在 網路通訊是連線中斷,或者 JVM 記憶

Java(二)異常處理4.throw關鍵字

public class ThrowDemo { public static void main(String[] args) { try { int ret=divide(10,0); System.out.println(ret);