【发布时间】:2013-05-23 15:22:14
【问题描述】:
我有一个相当简单的 Grails 控制器操作,它将参数绑定到域实例并将其传递给处理持久性的服务。
def finishBooking() {
Booking booking = new Booking(params)
try {
booking = bookingService.saveBooking(booking)
} catch (ReservationException e) {
log.error("Error saving booking", e)
flash.message = "Couldn't save the reservation."
render(view: "index", model: [booking: booking])
return
}
if (booking.hasErrors()) {
flash.message = "Reservation failed. Check the required fields."
render(view: "index", model: [booking: booking])
} else {
[booking: booking]
}
}
根据codenarc,catch 块中的return 语句是一种不好的做法。否则您将如何实现错误处理?
【问题讨论】:
-
你不需要
return在 catch 中。您已经在渲染视图了。 -
如何放置所有代码来尝试阻止并从catch中删除返回?
-
@Mr.Cat 不是故意踩你的脚趾的……你有所有的功劳。 :)
-
@dmahapatro 没关系 (=