package com.hamburg.common.controllerAdvice; import com.hamburg.common.exception.ProjectException; import com.hamburg.common.result.Result; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestControllerAdvice; @Slf4j @RestControllerAdvice public class ProjectControllerAdvice { @ExceptionHandler(value = ProjectException.class) public Result projectExceptionHandler(Throwable e){ StackTraceElement stackTraceElement = e.getStackTrace()[0]; String className = stackTraceElement.getClassName(); String fileName = stackTraceElement.getFileName(); int lineNumber = stackTraceElement.getLineNumber(); String methodName = stackTraceElement.getMethodName(); log.error("projectExceptionHandler:{}",e.getMessage()); return Result.error(e.getMessage()+"该方法报错的位置是类:{"+className+"},文件:{"+fileName+"},报错行数:{"+lineNumber+"},方法名:{"+methodName+"}"); } }