天天看點

第九篇:SpringBoot 2.x全局異常處理

關于對異常的處理也是我們在開發過程一個比較大的問題,今天我們就來看看SpringBoot中如何處理異常。

TempException.java

package com.priv.gabriel.exception;

import lombok.AllArgsConstructor;
import lombok.Data;

/**
 * Created with Intellij IDEA.
 *
 * @Author: Gabriel
 * @Date: 2018-10-23
 * @Description:
 */
@Data
@AllArgsConstructor
public class TempException extends RuntimeException {

    private String code;

    private String message;
}
           

需要繼承RuntimeException事物才會進行復原

GlobalExceptionHandler.java

package com.priv.gabriel.exception.handler;

import com.priv.gabriel.exception.TempException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

/**
 * Created with Intellij IDEA.
 *
 * @Author: Gabriel
 * @Date: 2018-10-23
 * @Description:
 */
@ControllerAdvice
public class GlobalExceptionHandler {

    @ResponseBody
    @ExceptionHandler(value = TempException.class)
    public TempException tempErrHandler(TempException e){
        TempException exception = new TempException(e.getCode(),e.getMessage());
        return exception;
    }
}
           

DemoController.java

package com.priv.gabriel.controller;

import com.priv.gabriel.exception.TempException;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * Created with Intellij IDEA.
 *
 * @Author: Gabriel
 * @Date: 2018-10-23
 * @Description:
 */
@RestController
@RequestMapping("/demo")
public class DemoController {

    @RequestMapping("/index")
    public String index(){
        throw new TempException("111","沒找到對象");
    }
}
           
項目下載下傳位址