著者が見つからなかった場合のシナリオに基づいて、withTransactionメソッド内にカスタム例外がスローされています。しかし、コードが存在しない例外ブロック内でeneteringしていても作成者は、フローの外には存在しませんが、フローに続行します。 ここに欠けていることや間違っていることがあるかどうかを確認したいだけです。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