SpringBoot (十) 全局异常捕获
有勇气的牛排
780
Java
2023-02-25 22:31:16
文章目录
1 测试类
package couragesteak.service;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyIndexService {
@RequestMapping("/index")
public int MyIndexPage(int num) {
int j = 1 / num;
return j;
}
}
2 异常处理
2.1 返回json
package couragesteak.service;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.Map;
@ControllerAdvice
public class CsExceptionHandler {
@ExceptionHandler(RuntimeException.class)
@ResponseBody
public Map<Object, Object> exceptionHandler() {
HashMap<Object, Object> result = new HashMap<>();
result.put("code", 500);
result.put("msg", "系统错误");
return result;
}
}

<p><h3>文章目录</h3><ul><ul><li><a href="#1__2">1 测试类</a></li><li><a href="#2__29">2 异常处理</a></li><ul><li><a href="#21_json_31">2.1 返回json</a></li></ul></ul></ul></p>
<h2><a id="1__2"></a>1 测试类</h2>
<pre><div class="hljs"><code class="lang-java"><span class="hljs-comment">/*
* @Author : 有勇气的牛排(全网同名)
* @FileName: MyIndex.java
* desc :
* */</span>
<span class="hljs-keyword">package</span> couragesteak.service;
<span class="hljs-keyword">import</span> org.springframework.web.bind.annotation.RequestMapping;
<span class="hljs-keyword">import</span> org.springframework.web.bind.annotation.RestController;
<span class="hljs-meta">@RestController</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">class</span> <span class="hljs-title class_">MyIndexService</span> {
<span class="hljs-comment">// http://127.0.0.1:8080/index?num=0</span>
<span class="hljs-meta">@RequestMapping("/index")</span>
<span class="hljs-keyword">public</span> <span class="hljs-type">int</span> <span class="hljs-title function_">MyIndexPage</span><span class="hljs-params">(<span class="hljs-type">int</span> num)</span> {
<span class="hljs-type">int</span> <span class="hljs-variable">j</span> <span class="hljs-operator">=</span> <span class="hljs-number">1</span> / num;
<span class="hljs-keyword">return</span> j;
}
}
</code></div></pre>
<h2><a id="2__29"></a>2 异常处理</h2>
<h3><a id="21_json_31"></a>2.1 返回json</h3>
<pre><div class="hljs"><code class="lang-java"><span class="hljs-comment">/*
* @Author : 有勇气的牛排(全网同名)
* @FileName: CsExceptionHandler.java
* desc : 全局异常处理
* */</span>
<span class="hljs-keyword">package</span> couragesteak.service;
<span class="hljs-keyword">import</span> org.springframework.web.bind.annotation.ControllerAdvice;
<span class="hljs-keyword">import</span> org.springframework.web.bind.annotation.ExceptionHandler;
<span class="hljs-keyword">import</span> org.springframework.web.bind.annotation.ResponseBody;
<span class="hljs-keyword">import</span> java.util.HashMap;
<span class="hljs-keyword">import</span> java.util.Map;
<span class="hljs-meta">@ControllerAdvice</span>
<span class="hljs-keyword">public</span> <span class="hljs-keyword">class</span> <span class="hljs-title class_">CsExceptionHandler</span> {
<span class="hljs-meta">@ExceptionHandler(RuntimeException.class)</span>
<span class="hljs-meta">@ResponseBody</span> <span class="hljs-comment">// 响应json, 如果响应页面可以注释掉这个</span>
<span class="hljs-keyword">public</span> Map<Object, Object> <span class="hljs-title function_">exceptionHandler</span><span class="hljs-params">()</span> {
HashMap<Object, Object> result = <span class="hljs-keyword">new</span> <span class="hljs-title class_">HashMap</span><>();
result.put(<span class="hljs-string">"code"</span>, <span class="hljs-number">500</span>);
result.put(<span class="hljs-string">"msg"</span>, <span class="hljs-string">"系统错误"</span>);
<span class="hljs-keyword">return</span> result;
}
}
</code></div></pre>
<p><img src="https://static.couragesteak.com/article/1088ec18dbe6a3feb5f305736a52825b.png" alt="image.png" /></p>
评论区