forked from newbee-ltd/newbee-mall
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
24b5e0a
commit fab305e
Showing
5 changed files
with
109 additions
and
27 deletions.
There are no files selected for viewing
21 changes: 21 additions & 0 deletions
21
src/main/java/ltd/newbee/mall/common/NewBeeMallException.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
package ltd.newbee.mall.common; | ||
|
||
public class NewBeeMallException extends RuntimeException { | ||
|
||
public NewBeeMallException() { | ||
} | ||
|
||
public NewBeeMallException(String message) { | ||
super(message); | ||
} | ||
|
||
/** | ||
* 丢出一个异常 | ||
* | ||
* @param message | ||
*/ | ||
public static void fail(String message) { | ||
throw new NewBeeMallException(message); | ||
} | ||
|
||
} |
46 changes: 46 additions & 0 deletions
46
src/main/java/ltd/newbee/mall/controller/common/NewBeeMallExceptionHandler.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
package ltd.newbee.mall.controller.common; | ||
|
||
import ltd.newbee.mall.common.NewBeeMallException; | ||
import ltd.newbee.mall.util.Result; | ||
import org.springframework.web.bind.annotation.ExceptionHandler; | ||
import org.springframework.web.bind.annotation.RestControllerAdvice; | ||
import org.springframework.web.servlet.ModelAndView; | ||
|
||
import javax.servlet.http.HttpServletRequest; | ||
|
||
/** | ||
* newbee-mall全局异常处理 | ||
*/ | ||
@RestControllerAdvice | ||
public class NewBeeMallExceptionHandler { | ||
|
||
@ExceptionHandler(Exception.class) | ||
public Object handleException(Exception e, HttpServletRequest req) { | ||
Result result = new Result(); | ||
result.setResultCode(500); | ||
//区分是否为自定义异常 | ||
if (e instanceof NewBeeMallException) { | ||
result.setMessage(e.getMessage()); | ||
} else { | ||
result.setMessage("未知异常,请联系管理员"); | ||
} | ||
//检查请求是否为ajax, 如果是 ajax 请求则返回 Result json串, 如果不是 ajax 请求则返回 error 视图 | ||
String contentTypeHeader = req.getHeader("Content-Type"); | ||
String acceptHeader = req.getHeader("Accept"); | ||
String xRequestedWith = req.getHeader("X-Requested-With"); | ||
if ((contentTypeHeader != null && contentTypeHeader.contains("application/json")) | ||
|| (acceptHeader != null && acceptHeader.contains("application/json")) | ||
|| "XMLHttpRequest".equalsIgnoreCase(xRequestedWith)) { | ||
return result; | ||
} else { | ||
ModelAndView modelAndView = new ModelAndView(); | ||
modelAndView.addObject("message", e.getMessage()); | ||
modelAndView.addObject("url", req.getRequestURL()); | ||
modelAndView.addObject("stackTrace", e.getStackTrace()); | ||
modelAndView.addObject("author", "十三"); | ||
modelAndView.addObject("ltd", "新峰商城"); | ||
modelAndView.setViewName("error/error"); | ||
return modelAndView; | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
<!DOCTYPE html> | ||
<html lang="en" xmlns:th="http://www.thymeleaf.org"> | ||
<head> | ||
<meta charset="utf-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1" /> | ||
<title>NEW BEE ERROR PAGE</title> | ||
<style type="text/css">/*! normalize.css v5.0.0 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:sans-serif;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}/*! Simple HttpErrorPages | MIT X11 License | https://github.com/AndiDittrich/HttpErrorPages */body,html{width:100%;height:100%;background-color:#21232a}body{color:#fff;text-shadow:0 2px 4px rgba(0,0,0,.5);padding:0;min-height:100%;-webkit-box-shadow:inset 0 0 100px rgba(0,0,0,.8);box-shadow:inset 0 0 100px rgba(0,0,0,.8);display:table;font-family:"Open Sans",Arial,sans-serif}h1{font-family:inherit;font-weight:500;line-height:1.1;color:inherit;font-size:36px}h1 small{font-size:68%;font-weight:400;line-height:1;color:#777}a{text-decoration:none;color:#fff;font-size:inherit;border-bottom:dotted 1px #707070}.lead{color:silver;font-size:21px;line-height:1.4}.cover{display:table-cell;vertical-align:middle;padding:0 20px}footer{position:fixed;width:100%;height:40px;left:0;bottom:0;color:#a0a0a0;font-size:14px}</style> | ||
</head> | ||
<body> | ||
<div class="cover"> | ||
<h1>你的请求出错了</h1> | ||
<p th:text="'错误信息:'+${message}" style="color: red;font-weight: 600;"></p> | ||
<p th:text="'请求地址:'+${url}"></p> | ||
<h2>报告问题</h2> | ||
<a href="https://github.com/newbee-ltd/newbee-mall/issues/new" target="_blank" style="color: #1baeae">提交issue</a> | ||
<a href="//shang.qq.com/wpa/qunwpa?idkey=dc0e028f177932aee2c212a2dd60e0b8342042ac205305803ea801c4eea6727c" target="_blank" style="color: #1baeae">QQ交流群</a> | ||
<h2>异常堆栈跟踪日志</h2> | ||
<div th:each="string:${stackTrace}"> | ||
<small><th:block th:text="${string}"></th:block></small> | ||
</div> | ||
<h2>Copy Right</h2> | ||
<p th:text="'author:'+${author}" style="color: #1baeae;"></p> | ||
<p th:text="'ltd:'+${ltd}" style="color: #1baeae;"></p> | ||
</div> | ||
</body> | ||
</html> |