我需要在适当的位置显示从服务接收到的一些验证消息,我解决了它,将消息置于异常中:
class InvalidInputException extends RuntimeException {
def errors
InvalidInputException(String s) {
super(s)
}
InvalidInputException(String s, errors) {
super(s)
this.errors = errors
}
}
这样,我可以抛出异常发送错误:
if (errors) {
throw new InvalidInputException("There were some errors", errors)
}
..然后我在控制器中处理错误,捕获异常后:
...
catch (InvalidInputException e) {
if (e.errors) {
// set them up to display appropriately
}
// render the view
}
现在,我在某处读到 Groovy 的异常可能会花费太多,所以......这太糟糕了吗?将其他数据放入异常中可能会遇到什么问题?
这比摆弄返回的错误消息要容易得多,而且代码要短得多。