Как глобально обрабатывать ошибки HTTP в Grails (коды состояния 4xx/5xx)?
Есть ли способ в Grails перехватить все возможные ошибки HTTP перед их отправкой в браузер клиента, чтобы иметь возможность обрабатывать контент, отправляемый клиенту? Я имею в виду все коды состояния HTTP 4xx и 5xx, а не только 403, 404 и 500, как другие предложили.
То, что я хотел бы сделать, это перехватить все ошибки HTTP, во-первых, без необходимости указывать их все по одному, затем на втором шаге я бы отфильтровал (например, в контроллере ошибок) конкретные коды ошибок, которые мне бы хотелось обрабатывать (например, 400), но, по крайней мере, те, которые я не буду указывать, будут отображаться в общий шаблон ошибки, который я определил.
Если это не может быть сделано (или не должно быть сделано), какие коды ошибок HTTP должны действительно проверяться и обрабатываться? Я, по крайней мере, могу видеть, что эти коды происходят в какой-то момент: 400, 401, 403, 404, 405, 500, 501, 503. А также, как они должны обрабатываться, используя сопоставления кодов ответов HTTP?
Спасибо!
1 ответ
На самом деле не пробовал, но, возможно, сработает ограничение числа?
"$errorCode" {
controller = "errors"
action = "displayError"
constraints {
errorCode(matches:/\d{3}/)
}
}