ssm异常捕获和处理
生活随笔
收集整理的這篇文章主要介紹了
ssm异常捕获和处理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
ssm異常捕獲和處理
package exception;import lombok.extern.slf4j.Slf4j; import org.hibernate.HibernateException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ResponseBody; import entity.vo.ResponseBodyResult; import entity.vo.ResultVo;import java.io.IOException; import java.sql.SQLException;/*** @Description 自定義異常處理程序* @Author zhaohuaqing*/ @ControllerAdvice @Slf4j public class ExceptionHandler {/*** @description 自定義空指針異常* @return entity.vo.ResponseBodyResult 異常信息* @author zhaohuaqing* @date 2021/6/11 21:47* @version 1.0*/@org.springframework.web.bind.annotation.ExceptionHandler({NullPointerException.class})@ResponseBodypublic ResponseBodyResult myNullExceptionHandler(NullPointerException e){log.error(e.getMessage());log.error(String.valueOf(e.getCause()));return ResponseBodyResult.errorOf(ResultVo.NULL_EXCEPTION);}/*** @description 自定義類型強制轉換異常* @return entity.vo.ResponseBodyResult 異常信息* @author zhaohuaqing* @date 2021/6/17 15:58* @version 1.0*/@org.springframework.web.bind.annotation.ExceptionHandler({ClassCastException.class})@ResponseBodypublic ResponseBodyResult myClassCastExceptionHandler(ClassCastException e){log.error(e.getMessage());log.error(String.valueOf(e.getCause()));return ResponseBodyResult.errorOf(ResultVo.CLASS_CAST_EXCEPTION);}/*** @description 操作數據庫異常* @return entity.vo.ResponseBodyResult 異常信息* @author zhaohuaqing* @date 2021/6/17 16:00* @version 1.0*/@org.springframework.web.bind.annotation.ExceptionHandler({SQLException.class})@ResponseBodypublic ResponseBodyResult mySQLExceptionHandler(SQLException e){log.error(e.getMessage());log.error(String.valueOf(e.getCause()));return ResponseBodyResult.errorOf(ResultVo.SQL_EXCEPTION);}/*** @description 輸入輸出異常* @return entity.vo.ResponseBodyResult 異常信息* @author zhaohuaqing* @date 2021/6/17 16:00* @version 1.0*/@org.springframework.web.bind.annotation.ExceptionHandler({IOException.class})@ResponseBodypublic ResponseBodyResult myIOExceptionHandler(IOException e){log.error(e.getMessage());log.error(String.valueOf(e.getCause()));return ResponseBodyResult.errorOf(ResultVo.IO_EXCEPTION);}/*** @description 方法未找到異常* @return entity.vo.ResponseBodyResult 異常信息* @author zhaohuaqing* @date 2021/6/17 16:00* @version 1.0*/@org.springframework.web.bind.annotation.ExceptionHandler({NoSuchMethodException.class})@ResponseBodypublic ResponseBodyResult myNoSuchMethodExceptionHandler(NoSuchMethodException e){log.error(e.getMessage());log.error(String.valueOf(e.getCause()));return ResponseBodyResult.errorOf(ResultVo.NO_SUCH_METHOD_EXCEPTION);}/*** @description 總的異常* @return entity.vo.ResponseBodyResult 異常信息* @author zhaohuaqing* @date 2021/6/17 16:03* @version 1.0*/@org.springframework.web.bind.annotation.ExceptionHandler({Exception.class})@ResponseBodypublic ResponseBodyResult myExceptionHandler(Exception e){log.error(e.getMessage());log.error(String.valueOf(e.getCause()));return ResponseBodyResult.errorOf(ResultVo.EXCEPTION);} } package entity.vo;/*** @Description 視圖層統一返回值* @Author zhaohuaqing*/ public class ResponseBodyResult {/*** 返回代碼*/private int code;/*** 消息說明*/private String message;/*** 數據*/private Object data;private ResponseBodyResult(int code, String message, Object data) {this.code = code;this.message = message;this.data = data;}private static ResponseBodyResult of(ResultVo resultVo, Object data) {return new ResponseBodyResult(resultVo.getCode(), resultVo.getMsg(), data);}public static ResponseBodyResult okOf(ResultVo resultVo) {return of(resultVo, null);}public static ResponseBodyResult okOf(ResultVo resultVo, Object data) {return of(resultVo, data);}public static ResponseBodyResult errorOf(ResultVo resultVo) {return of(resultVo, null);}public int getCode() {return code;}public void setCode(int code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}public Object getData() {return data;}public void setData(Object data) {this.data = data;}} package entity.vo; /*** @Description 枚舉,返回狀態和數據* @Author zhaohuaqing*/ public enum ResultVo {FOUND_ALL_USER(1,"查詢所有用戶成功"),FOUND_ALL_DEPART(1,"查詢所有部門成功"),NULL_EXCEPTION(999,"空指針異常"),NO_FOUND_USER(998, "該用戶不存在"),DELETE_USER_SUCCESS(1,"刪除成功"),DELETE_USER_FAIL(997,"刪除失敗"),FOUND_USER_BY_DEPART(1,"根據部門查數據成功"),FOUND_ONE_USER(1, "該用戶已存在"),UPDATE_USER_SUCCESS(1, "更新成功"),UPDATE_USER_FAIL(996, "更新失敗"),LOGIN_OUT_SUCCESS(1,"注銷成功"),FOUND_GENDER_SUCCESS(1,"查詢性別信息成功"),SAVE_USER_SUCCESS(1,"保存成功"),SAVE_USER_FAIL(996,"保存失敗"),THE_USER_ALREADY_EXISTS(995,"該用戶已存在"),CLASS_CAST_EXCEPTION(994,"強制類型轉換異常"),SQL_EXCEPTION(993,"操作數據庫異常"),IO_EXCEPTION(992,"輸入輸出異常"),NO_SUCH_METHOD_EXCEPTION(991,"方法未找到異常"),EXCEPTION(990,"出現異常");private Integer code;private String msg;ResultVo(Integer code, String msg) {this.code = code;this.msg = msg;}public Integer getCode() {return code;}public String getMsg() {return msg;}}總結
以上是生活随笔為你收集整理的ssm异常捕获和处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ssm 静态资源处理器
- 下一篇: 拼接xml