Javaグローバル例外取得
1485 ワード
1.戻りクラスの定義
2.例外クラスの定義
package com.eternalray.common;
import lombok.Data;
/**
* @Author: Eternalray
*
*/
@Data
public class Result {
/**
* success true false
*/
private boolean success;
/**
* data
*/
private T data;
public static Result set(boolean success,T data){
Result result=new Result<>();
result.setSuccess(success);
result.setData(data);
return result;
}
}
2.例外クラスの定義
package com.eternalray.conf;
import com.eternalray.common.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import java.lang.reflect.UndeclaredThrowableException;
/**
*
* @author EternalRay
*/
@ControllerAdvice
@ResponseBody
@Slf4j
public class GlobalExceptionHandleConf {
/**
*
* @param e
* @return
*/
@ExceptionHandler(Exception.class)
public Object handlerException(Exception e){
//annotation
if(e instanceof UndeclaredThrowableException) {
e = (Exception) ((UndeclaredThrowableException)e).getUndeclaredThrowable();
}
log.error("[handleException]: ",e);
return Result.set(false,e.getMessage());
}
}