我正在尝试从与Grails中的域对象交互时抛出的异常中确定错误代码是什么。
我有一个数据库,其中包含一些字段验证,其中一个验证是特定列必须是唯一的。 根据文档,它将给出错误代码className.propertyName.unique
(http://grails.org/doc/latest/ref/Constraints/unique.html)。 当我将控制器包装在尝试捕获块中时。 我可以捕获各种验证异常:
catch (grails.validation.ValidationException e) {
exception handling code here
}
如何访问错误代码?我想做一些类似If the Error Code = className1.propertyName2.unique
的事情,然后propertyName2 is not unique
回复。
当我执行保存操作时,我确实将"failOnError: true"设置为参数。
谢谢!
错误代码隐藏在对象深处。 它将是通过调用以下代码返回的列表中的项之一,其中"e"是异常对象。
e.getErrors().getFieldError()
您还可以通过调用以下内容从异常中获取代码(在本例中为"唯一"):
e.getErrors().getFieldError().getCode()