|
|
|
Как организовать обработку ошибок в spring-mvc
|
|||
|---|---|---|---|
|
#18+
Встала задача сделать на сайте error page. Знаю, что в spring mvc есть аннотация @ExceptionHandler. Можно ловить Exception и отправлять на какую-то одну стандартную страницу. Но у на 2 типа методов контроллера. Одни возвращают jsp, другие возвращают json. Если для тех, кто возвращает jsp указаный подход применим, то как быть если контроллер возвращает json и завалился? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2015, 22:53 |
|
||
|
Как организовать обработку ошибок в spring-mvc
|
|||
|---|---|---|---|
|
#18+
redwhite90Но у на 2 типа методов контроллера. Одни возвращают jsp, другие возвращают json. Из контроллёра JSON нельзя показать на клиенте без обработки. Т.е. выход обоих контроллёров не равнозначен. Значит и обработки при JSON будет ручная. Например, вместо JSON отдать код ошибки HTTP IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 09:56 |
|
||
|
Как организовать обработку ошибок в spring-mvc
|
|||
|---|---|---|---|
|
#18+
Можно обеспечить в одном типе методов (например, отдающих JSON) бросание только одного исключения, и для него сделать свой @ExceptionHandler. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 10:28 |
|
||
|
Как организовать обработку ошибок в spring-mvc
|
|||
|---|---|---|---|
|
#18+
Alexander A. SakМожно обеспечить в одном типе методов (например, отдающих JSON) бросание только одного исключения, и для него сделать свой @ExceptionHandler. Ну а если код уже написан и он бросает runtime и в одном и в другом случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 17:43 |
|
||
|
Как организовать обработку ошибок в spring-mvc
|
|||
|---|---|---|---|
|
#18+
Если код уже написан, то его можно просто переделать. Еще родился вариант: разнести методы на 2 контроллера. У каждого будет свой @ExceptionHandler. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 18:44 |
|
||
|
Как организовать обработку ошибок в spring-mvc
|
|||
|---|---|---|---|
|
#18+
Alexander A. SakЕсли код уже написан, то его можно просто переделать. Еще родился вариант: разнести методы на 2 контроллера. У каждого будет свой @ExceptionHandler. Кода много. На данный момент нельзя быть уверенным, что нигде не вывалится Runtime exception. Не хотелось бы польтзователю stacktrace показывать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.02.2015, 21:12 |
|
||
|
Как организовать обработку ошибок в spring-mvc
|
|||
|---|---|---|---|
|
#18+
Ловите исключения вызывайте setStatus(НужныйКод) и завершайте обработку запроса. JSON клиент должен понять, что всё плохо, а человеку ошибку нарисует браузер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2015, 16:30 |
|
||
|
Как организовать обработку ошибок в spring-mvc
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЛовите исключения вызывайте setStatus(НужныйКод) и завершайте обработку запроса. JSON клиент должен понять, что всё плохо, а человеку ошибку нарисует браузер. +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.02.2015, 16:47 |
|
||
|
Как организовать обработку ошибок в spring-mvc
|
|||
|---|---|---|---|
|
#18+
Petro123Basil A. SidorovЛовите исключения вызывайте setStatus(НужныйКод) и завершайте обработку запроса. JSON клиент должен понять, что всё плохо, а человеку ошибку нарисует браузер. +1 ну допустм я ловлю throwable. Как мне понять откуда он прилетел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 01:42 |
|
||
|
Как организовать обработку ошибок в spring-mvc
|
|||
|---|---|---|---|
|
#18+
redwhite90, Приведи код. На клиенте не нужны подробности. Только в логах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 08:19 |
|
||
|
Как организовать обработку ошибок в spring-mvc
|
|||
|---|---|---|---|
|
#18+
redwhite90ну допустм я ловлю throwable. Как мне понять откуда он прилетел?Исключения существуют для того, чтобы идентично обработать все однотипные исключения. Если, внезапно, вам требуется знать место исключения, то вы или "желаете странного" или вам надо урезать try-блок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 18:43 |
|
||
|
Как организовать обработку ошибок в spring-mvc
|
|||
|---|---|---|---|
|
#18+
Petro123redwhite90, Приведи код. На клиенте не нужны подробности. Только в логах. Что непонятного в определении: "кода много. Настолько много, что пытаемся найти решение без переписывания кода". Задача такая: клиент ни в коем случае не должен увидеть stacktrace. Точка. Basil A. Sidorov Исключения существуют для того, чтобы идентично обработать все однотипные исключения. Если, внезапно, вам требуется знать место исключения, то вы или "желаете странного" или вам надо урезать try-блок. Тип исключений один - RuntimeExceptioin. Есть 2 типа методов, которые его могут бросать. 1 - методы возвращающие html.2 - методы, возвращающие json. Оборачивать каждый методов в try-catch - идея плохая, перерефакторить весь код возможности нет. Даже если весь код перерефакторить, то это ещё не значит что там не будет ошибок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2015, 21:12 |
|
||
|
Как организовать обработку ошибок в spring-mvc
|
|||
|---|---|---|---|
|
#18+
@ControllerAdvice Там метод, например Код: java 1. 2. 3. 4. 5. 6. 7. 8. Далее Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.02.2015, 20:11 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=140&tid=2125818]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 268ms |
| total: | 376ms |

| 0 / 0 |
