1
1
package demo .web .handler ;
2
2
3
+ import demo .web .controller .base .ResponseCode ;
4
+ import demo .web .controller .base .ResponseData ;
3
5
import lombok .extern .slf4j .Slf4j ;
4
6
import org .springframework .validation .BindException ;
5
7
import org .springframework .validation .FieldError ;
13
15
import javax .servlet .http .HttpServletResponse ;
14
16
import javax .servlet .http .HttpSession ;
15
17
import javax .validation .ConstraintViolationException ;
16
- import java .util .HashMap ;
17
- import java .util .Map ;
18
18
19
19
20
20
/**
@@ -36,32 +36,36 @@ public class GlobalExceptionHandler {
36
36
* 处理参数校验异常
37
37
*/
38
38
@ ExceptionHandler (value = {MethodArgumentNotValidException .class , BindException .class })
39
- private Map <String , Object > paramHandler (Exception e ) {
40
- Map <String , Object > map = new HashMap <>();
41
- FieldError error = new FieldError ("obj" , "field" , "default msg" );
39
+ private ResponseData paramHandler (Exception e ) {
40
+ ResponseData responseData = new ResponseData ();
41
+ responseData .setCode (ResponseCode .PARAM_INVALID );
42
+ FieldError error ;// = new FieldError("obj", "field", "default msg");
43
+ //入参为对象
42
44
if (e instanceof MethodArgumentNotValidException ) {
43
45
MethodArgumentNotValidException ex = (MethodArgumentNotValidException ) e ;
44
- error = ex .getBindingResult ().getFieldError ();//如果错误不知一个,亲测好象是随机获取一个错误
45
- } else if (e instanceof BindException ) {
46
+ error = ex .getBindingResult ().getFieldError ();//如果错误不止一个,亲测好象是随机获取一个错误
47
+ } else {// if (e instanceof BindException) {
48
+ //入参为键值对
46
49
BindException ex = (BindException ) e ;
47
50
error = ex .getBindingResult ().getFieldError ();
48
51
}
49
- map . put ( "msg" , error .getField () + error .getDefaultMessage () + ":" + error .getRejectedValue ());
50
- map . put ( "type" , e .getClass ().getName ());
51
- return map ;
52
+ responseData . setMsg ( error .getField () + error .getDefaultMessage () + ":" + error .getRejectedValue ());
53
+ responseData . setExt ( e .getClass ().getName ());
54
+ return responseData ;
52
55
}
53
56
54
57
/**
55
58
* 单个参数校验
56
59
*/
57
60
@ ExceptionHandler (value = ConstraintViolationException .class )
58
61
@ ResponseBody
59
- public Map <String , Object > handleBindGetException (ConstraintViolationException ex ) {
60
- log .error ("单个参数校验异常" , ex );
61
- Map <String , Object > map = new HashMap <>();
62
- map .put ("type" , ex .getClass ().getName ());
63
- map .put ("msg" , ex .getMessage ());
64
- return map ;
62
+ public ResponseData handleBindGetException (ConstraintViolationException e ) {
63
+ log .error ("单个参数校验异常" , e );
64
+ ResponseData responseData = new ResponseData ();
65
+ responseData .setCode (ResponseCode .PARAM_INVALID )
66
+ .setMsg (e .getMessage ())
67
+ .setExt (e .getClass ().getName ());
68
+ return responseData ;
65
69
}
66
70
67
71
@@ -70,27 +74,25 @@ public Map<String, Object> handleBindGetException(ConstraintViolationException e
70
74
*/
71
75
@ ExceptionHandler (value = MaxUploadSizeExceededException .class )
72
76
@ ResponseBody
73
- public Map < String , Object > handleMax (MaxUploadSizeExceededException ex ) {
74
- log .error ("文件过大" , ex );
75
- Map < String , Object > map = new HashMap <> ();
76
- map . put ( "type" , ex . getClass (). getName ());
77
- map . put ( "msg" , ex . getMessage ());
78
- map . put ( "desc" , "文件过大" );
79
- return map ;
77
+ public ResponseData handleMax (MaxUploadSizeExceededException e ) {
78
+ log .error ("文件过大" , e );
79
+ ResponseData responseData = new ResponseData ();
80
+ responseData . setCode ( ResponseCode . PARAM_INVALID )
81
+ . setMsg ( "上传文件过大" )
82
+ . setExt ( e . getClass (). getName () );
83
+ return responseData ;
80
84
}
81
85
82
86
/**
83
87
* 默认异常处理,入参需要哪些参数可根据需求而定
84
88
*/
85
89
@ ExceptionHandler (value = Exception .class )
86
- private Map < String , Object > defaultExceptionHandler (HttpServletRequest req , HttpServletResponse resp ,
87
- HttpSession session , Exception e ) {
90
+ private ResponseData defaultExceptionHandler (HttpServletRequest req , HttpServletResponse resp ,
91
+ HttpSession session , Exception e ) {
88
92
log .error ("exception handler: " , e );
89
- Map <String , Object > map = new HashMap <>();
90
- map .put ("code" , 1 );
91
- map .put ("msg" , e .getMessage ());
92
- map .put ("type" , e .getClass ().getName ());
93
- return map ;
93
+ ResponseData responseData = ResponseData .exceptionObj (e );
94
+ responseData .setExt (e .getClass ().getName ());
95
+ return responseData ;
94
96
}
95
97
96
98
0 commit comments