Как глобально обрабатывать ошибки HTTP в Grails (коды состояния 4xx / 5xx)? - PullRequest
6 голосов
/ 06 декабря 2010

Есть ли в Grails способ перехватить все возможные ошибки HTTP перед их отправкой в ​​браузер клиента, чтобы иметь возможность обрабатывать содержимое, отправляемое клиенту?Я имею в виду все коды состояния HTTP 4xx и 5xx , а не только 403, 404 и 500, как предлагали другие.

То, что я хотел бы сделать, это сначала перехватить все ошибки HTTP, без необходимости указывать их все по одному, затем на втором шаге я бы отфильтровал (например, в контроллере ошибок) специфическиекоды ошибок, которые я хотел бы обработать (например, 400), но, по крайней мере, те, которые я не указал бы, отображали бы общий шаблон ошибок, который я определил.

Если это невозможно сделать (или не следует 'не будет сделано), какие коды ошибок HTTP действительно должны быть проверены и обработаны?По крайней мере, я могу видеть, что эти коды происходят в какой-то момент: 400, 401, 403, 404, 405, 500, 501, 503. А также, как они должны обрабатываться, используя сопоставления кодов ответов HTTP?

Спасибо!

1 Ответ

2 голосов
/ 06 декабря 2010

на самом деле не пробовал, но, может быть, сработает ограничение на число?

"$errorCode" {
     controller = "errors"
     action = "displayError"
     constraints {
          errorCode(matches:/\d{3}/)
     }
}
...