springboot 常用的异常处理方式
生活随笔
收集整理的這篇文章主要介紹了
springboot 常用的异常处理方式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
springboot常用的異常處理推薦:
一.創(chuàng)建一個異常控制器,并實現(xiàn)ErrorController接口:
package com.example.demo.controller;import org.springframework.boot.web.servlet.error.ErrorController; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;@Controller public class BaseErrorController implements ErrorController {@Overridepublic String getErrorPath() {return "/error/error";}@RequestMapping("/error")public String getError() {return getErrorPath();}}當系統(tǒng)內發(fā)生錯誤后會跳轉到error頁面。
二.創(chuàng)建一個異常句柄ErrorExceperHandler
package com.example.demo.handler;import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseStatus; import org.springframework.web.servlet.ModelAndView;@ControllerAdvice public class ErrorExceperHandler {@ExceptionHandler@ResponseStatus(HttpStatus.OK)public ModelAndView processException(Exception exception) {ModelAndView modelAndView = new ModelAndView();modelAndView.addObject("exception", exception.getMessage());modelAndView.setViewName("/error/error");return modelAndView;}@ExceptionHandler@ResponseStatus(HttpStatus.OK)public ModelAndView processException(RuntimeException exception) {ModelAndView modelAndView = new ModelAndView();modelAndView.addObject("exception", exception.getMessage());modelAndView.setViewName("/error/error");return modelAndView;} }重載方法針對Exception和RuntimeException進行攔截,當系統(tǒng)發(fā)生異常后,會跳轉到異常頁面。
package com.example.demo.controller;import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping;import com.example.demo.entity.Student;@Controller @RequestMapping("/student/") public class StudentController {@RequestMapping("show")public String show(Model model) throws Exception {Student stu = new Student();stu.setId(1001);stu.setName("小明");model.addAttribute("student", stu);if (!"a".equals("")) {throw new RuntimeException("RuntimeException....");}if (!"a".equals("")) {throw new Exception("Exception....");}return "show";}}在做spring或springboot開發(fā)的時候推薦使用第二種。
轉載于:https://www.cnblogs.com/blog411032/p/10364363.html
總結
以上是生活随笔為你收集整理的springboot 常用的异常处理方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 加密_easy_crypto
- 下一篇: Linux入门:部署JavaWeb项目