gpt4 book ai didi

grails - Grails:调试save()或validate()

转载 作者:行者123 更新时间:2023-12-02 14:14:25 25 4
gpt4 key购买 nike

我对Grails有点陌生。当我创建或更新域对象并在对象上触发save()validate()时,如果该方法失败,则系统似乎不会引发异常。我看不到任何方法来检查到底是什么失败。

典型的代码段:

if (domainInstance.validate()) {
flash.message = "Succesfully updated domain object"
} else {
flash.message = "Failed to update domain object"
//throw new RuntimeException("Invalid broker")
log.error "Failed to update domain object"
}

在我的情况下,验证失败,而我为什么不知道。
有人可以阐明吗?

如果放入try / catch中,则不会引发异常。

最佳答案

mydomain.validate()仅用于验证对象。您可以使用mydomain.hasErrors()加载错误对象并打印以下语句出了什么问题。

if(mydomain.hasErrors()){
mydomain.errors.allErrors.each{println it}
}

通常,我更喜欢保存和更新任何对象的方式是
if(mydomain.hasErrors() || !mydomain.save(failOnError:true){
//action to be taken if domain validation fails.
}

通过设置failOnError:true,如果save()失败,将引发验证异常,需要在 Controller 中捕获该异常。

关于grails - Grails:调试save()或validate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3544456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com