我在withTransaction方法的基礎上,當作者找不到時拋出一個自定義異常。但是我面對的問題是即使代碼在異常塊內部不存在,作者,它不存在於流程之外,而是繼續流動。 只是想檢查是否有任何我在這裏失蹤或做錯了。Grails - 內部異常withTransaction塊不能正常工作
Author.withTransaction() {
authStatus -> def author = Author.get(id)
if (!author) {
log.warn "author not found"
throw new NotFoundException('author not found')
}
author.status = 'completed'
author.save()
}
感謝 山姆
因此,「作者未找到」寫入您的日誌,但它仍嘗試設置空對象的狀態?你的代碼看起來很好。 – Ivar
是的,它仍在繼續處理下一組代碼,它是'author.status ='completed',author.save()'。 – Sam
所以,爲了100%確定,您會在日誌中看到「作者未找到」,並且會拋出NullPointerException,因爲它無法設置狀態?如果是這種情況,你應該嘗試清理項目並重建它。 – Ivar