catch()不捕获异常

50few1ms  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(343)

我正在应用一个开发,其中我正在实现spring验证,我遇到一个问题,当我插入一个属性为codigo null的对象时,它会抛出一个错误,但我无法用try-catch捕捉它。
我希望当它因为null而失败时,我可以通过try-catch()获得该错误。
对象

@Column( name = "codigo" , unique = true , nullable = false , length = 255 )
@UniqueElements( message = "El codigo debe ser unico.")
@Length( max = 255 , message = "El codigo debe ser menos a 255 caracteres")
@NotNull( message = "El codigo es requerido.")
private String codigo;

@Column( name = "motivo" , unique = false , nullable = false , length = 255 )
@Length( max = 255 , message = "El motivo debe ser menos a 255 caracteres")
@NotNull( message = "El motivo es requerido.")
private String motivo;

@Column( name = "active" , unique = false , nullable = false )
@NotNull( message = "El estado es requerido.")
private Boolean active;

服务

@Transactional( rollbackFor = BusinessLayerException.class )
 public String insertMotivoBaja( MotivoBajaTO motivoTO ) throws 
 BusinessLayerException {

try {

    MotivoBaja motivo = super.getPersistentObject( motivoTO , MotivoBajaTOT.class );
    return super.add( motivo );

  }catch (Exception e) {

      this.logger.error( e.getMessage() );

      if( e.getMessage().toLowerCase().startsWith("El".toLowerCase() ) ) {
          throw new BusinessLayerException(  e.getMessage());
      }

       throw new BusinessLayerException( "Error al dar de alta el motivo. Por Favor intente nuevamente." );    
    }

}

错误
org.springframework.transaction.transactionsystemexception:无法提交jpa事务;嵌套异常为javax.persistence.rollbackexception:提交事务时出错
原因:javax.validation.unexpectedtypeexception:hv000030:找不到约束“org.hibernate.validator.constraints.uniqueelements”验证类型“java.lang.string”的验证器。检查“codigo”的配置
请求(正文)

{
   "codigo":null,
   "motivo":"No quiere ser mas cliente",
   "active": true 
 }
kmbjn2e3

kmbjn2e31#

从文件中
验证所提供集合中的每个对象是否唯一 String 不是一个 Collection ,并且引发的异常不会发生在 try 方法,但在它之前,这就是为什么它没有被捕获

相关问题