try catch捕获异常,如果代码多了就显得冗余重复。我们可以用ControllerAdvice捕获全局异常变量处理  
 
 
比如重复重入unique数据,sql会报错 package  com. itheima. reggie. common ; import  lombok. extern. slf4j.  Slf4j ; 
import  org. springframework. stereotype.  Controller ; 
import  org. springframework. web. bind. annotation.  ControllerAdvice ; 
import  org. springframework. web. bind. annotation.  ExceptionHandler ; 
import  org. springframework. web. bind. annotation.  ResponseBody ; 
import  org. springframework. web. bind. annotation.  RestController ; 
import  java. sql.  SQLIntegrityConstraintViolationException ; 
@ControllerAdvice ( annotations =  { RestController . class ,  Controller . class } ) 
@ResponseBody 
@Slf4j 
public  class  GlobalExceptionHandler  { @ExceptionHandler ( SQLIntegrityConstraintViolationException . class ) public  R < String > exceptionHandler ( SQLIntegrityConstraintViolationException  ex) { log. error ( ex. getMessage ( ) ) ; if ( ex. getMessage ( ) . contains ( "Duplicate entry" ) ) { String [ ]  split =  ex. getMessage ( ) . split ( " " ) ; String  msg =  split[ 2 ]  +  "已存在" ; return  R . error ( msg) ; } return  R . error ( "未知错误" ) ; } }