1

我试图从与 Grails 中的域对象交互时引发的异常中确定错误代码是什么。

我有一个具有一些字段验证的数据库,其中一个验证是特定列必须是唯一的。根据文档,它会给出一个错误代码className.propertyName.uniquehttp://grails.org/doc/latest/ref/Constraints/unique.html)。当我将控制器包装在 try catch 块中时。我可以捕获各种验证异常:

catch (grails.validation.ValidationException e) {  
    exception handling code here  
}    

如何访问错误代码?我想做点什么If the Error Code = className1.propertyName2.unique,然后回应propertyName2 is not unique

当我进行保存操作时,我确实将“failOnError:true”设置为参数。

谢谢!

4

1 回答 1

3

错误代码深埋在对象内部。它将是通过调用以下代码返回的列表中的项目之一,其中“e”是异常对象。

e.getErrors().getFieldError()

您还可以通过调用以下命令从异常中获取代码(在本例中为“唯一”):

e.getErrors().getFieldError().getCode()
于 2015-01-09T15:58:41.477 回答