SpringMVC異常統一處理

2021-10-05 16:21:47 字數 3449 閱讀 6629

正文

spring 統一異常處理有 3 種方式,分別為:

使用 @ exceptionhandler 註解

實現 handlerexceptionresolver 介面

使用 @controlleradvice 註解

package com.tao.smp.exception;

/** * api統一的返回結果類

*/public class apiresult

public apiresult(resultcode resultcode)

/*** 生成乙個apiresult物件, 並返回

** @param resultcode

* @return

*/public static apiresult of(resultcode resultcode)

public string getcode()

public void setcode(string code)

public string getmsg()

public void setmsg(string msg)

@override

public string tostring() ';

}}

package com.tao.smp.exception;

/** * 錯誤碼

*/public enum resultcode

public string getcode()

public string getmsg()

}

package com.tao.smp.exception;

/** * 自定義業務異常

*/public class businessruntimeexception extends runtimeexception

public string getcode()

public void setcode(string code)

public string getmsg()

public void setmsg(string msg)

public resultcode getresultcode()

public void setresultcode(resultcode resultcode)

}

最後便是定義全域性異常處理類。

通過@controlleradvice指定該類為controller增強類。

通過@exceptionhandler自定捕獲的異常型別。

通過@responsebody返回json到前端。

package com.tao.smp.exception;

import org.slf4j.logger;

import org.slf4j.logge***ctory;

import org.springframework.web.bind.annotation.controlleradvice;

import org.springframework.web.bind.annotation.exceptionhandler;

import org.springframework.web.bind.annotation.responsebody;

/** * 全域性controller層異常處理類

*/@controlleradvice

public class globalexceptionresolver

/*** 處理所有業務異常

** @param e 業務異常

* @return json結果

*/@exceptionhandler(businessruntimeexception.class)

@responsebody

public apiresult handleopdruntimeexception(businessruntimeexception e)

}

package com.tao.smp.controller;

import com.tao.smp.exception.businessruntimeexception;

import com.tao.smp.exception.resultcode;

import org.springframework.stereotype.controller;

/** * 測試異常的丟擲

*/@controller

public class testcontroller

return "success";

}}

其他:常用異常捕獲

logger.error("服務執行異常", e);

e.printstacktrace();

return serviceresponsehandle.failed("server_error");

}}

springmvc異常統一處理(一)

目錄 正文 spring 統一異常處理有 3 種方式,分別為 使用 exceptionhandler 註解 實現 handlerexceptionresolver 介面 使用 controlleradvice 註解 使用該註解有乙個不好的地方就是 進行異常處理的方法必須與出錯的方法在同乙個contr...

SpringMVC 全域性異常統一處理

使用 exceptionhandler 註解 實現 handlerexceptionresolver 介面 使用 controlleradvice 註解 當以上三個方式,一起出現時,只執行執行範圍最小的方式,後面的方式不再執行處理 執行範圍 exceptionhandler controllerad...

統一處理異常

1.controlleradvice 註解定義全域性異常處理類 controlleradvice public class globalexceptionhandler 2.exceptionhandler 註解宣告異常處理方法,註解的方法的引數列表裡,還可以宣告很多種型別的引數 controlle...