Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
Обрабатываю исключение контроллера в самом контроллере: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Пока отлаживал в студии - все нормально, необходимые исключения перехватывались, на клиента возвращался код 200. Выложил на хостинг - стал возвращаться код 500. Подумав, добавил в обработчик строку: Код: c# 1. заработало и на хостинге. То есть проблема решена, но хотелось бы понять, отчего разное поведение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 12:21 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
Shocker.ProОбрабатываю исключение контроллера в самом контроллере Плохая практика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 12:37 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
Shocker.ProТо есть проблема решена, но хотелось бы понять, отчего разное поведение?Разная версия IIS? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 12:53 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
Shocker.Proхотелось бы понять, отчего разное поведение? Потому что веб-сервер используемый при отладке и полноценный IIS это две разных вещи. Shocker.ProПодумав, добавил в обработчик строку: Код: c# 1. Это плохая идея т.к. ошибки будут индексироваться поисковиками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 13:02 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
bazileЭто плохая идея т.к. ошибки будут индексироваться поисковиками.не будут - это ответ на аякс-запрос. bazileПотому что веб-сервер используемый при отладке и полноценный IIS это две разных вещи.это-то я догадался, но что именно влияет? По моему пониманию, это вообще не должно было выйти за пределы MVC-шной и моей dll-ки и IIS-у должен быть отдан только готовый statuscode codearticles.ruПлохая практика.Почему? Исключения генерятся на различных уровнях, из репозитория, из BL, самим контроллером. Некоторое количество известных ситуаций обрабатывает контроллер и выдает пользователю более информативное сообщение, чем 500. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 13:19 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
Shocker.ProПочему? Исключения генерятся на различных уровнях, из репозитория, из BL, самим контроллером. Некоторое количество известных ситуаций обрабатывает контроллер и выдает пользователю более информативное сообщение, чем 500. Исключение - это серьезный сбой программы, а не просто какая-то нотификация из недр BL и прочих слоёв. Нотификации нужно получать через результаты методов. Исключения нужно получать глобально, хотя бы уж через базовый контроллер, от которого наследуются остальные контроллеры. Хотя бы что-то типа того: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 13:25 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
codearticles.ru, где у себя на сайте 404 перехватываешь? Чё-то у меня путь с точками нифига не попадает в application error в global.asax, а другие 404 нормал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 13:31 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
codearticles.ruИсключение - это серьезный сбой программы, а не просто какая-то нотификация из недр BL и прочих слоёв. Нотификации нужно получать через результаты методов.Чё опять? Будем действовать как в Win API: getlasterror, hresult и всё такое? Сделать специальный InfoException для прикладных ошибок не лучше? Во все времена делалось именно так. codearticles.ruИсключения нужно получать глобально, хотя бы уж через базовый контроллер...Лучше написать фильтр, и присобачить его на соответствующем уровне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 13:31 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
st_stcodearticles.ru, где у себя на сайте 404 перехватываешь? Чё-то у меня путь с точками нифига не попадает в application error в global.asax, а другие 404 нормал. http://codearticles.ru/articles/2337 http://codearticles.ru/articles/2506 Алексей КЧё опять? Будем действовать как в Win API: getlasterror, hresult и всё такое? Сделать специальный InfoException для прикладных ошибок не лучше? Во все времена делалось именно так. codearticles.ruИсключения нужно получать глобально, хотя бы уж через базовый контроллер...Лучше написать фильтр, и присобачить его на соответствующем уровне. В сад! :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 13:35 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
codearticles.ruИсключение - это серьезный сбой программы, а не просто какая-то нотификация из недр BL и прочих слоёв. Нотификации нужно получать через результаты методов.Зачем? Методы возвращают необходимую информацию. Превращать исключение на нижнем уровне в параметр и начинать его гнать вверх по стеку вызова вручную? нафига. Исключение само пройдет по стеку, не нужно будет париться в каждом методе. К тому же, это не нотификации, это именно исключения. Например неожиданно не найдена запись в БД (возможно она была удалена этим же пользователем в другом сеансе работы). Но, не вижу, почему бы не использовать исключения как нотификации по непредусмотренным стандартной обработкой ситуациям. codearticles.ruИсключения нужно получать глобально, хотя бы уж через базовый контроллер, от которого наследуются остальные В общем-то так и делаю. Есть коллекция стандартных текстов для некоторых исключений, если базовый контроллер нашел исключение в своей коллекции - он меняет ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 13:56 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
codearticles.ru, Первую ссылку глянул, 404 нормально точки в урле схватывает, единственное на старом коде 500-ые поотваливались - Server.GetLastError() в null ушёл, надо починить. Вторую ссылку ещё не тестил. На этом форуме смотрю с точками тоже шняга, но уже не 404, а 500 - http://sql.ru/.../ , в то время как sql.ru/ghggh нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 15:08 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
А кто-нибудь ответ на первоначальный вопрос знает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 15:09 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro А кто-нибудь ответ на первоначальный вопрос знает? Нет. Решили не по стандарту ошибки обрабатывать, сами и разбирайтесь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 15:20 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 15:23 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
codearticles.rust_stcodearticles.ru, где у себя на сайте 404 перехватываешь? Чё-то у меня путь с точками нифига не попадает в application error в global.asax, а другие 404 нормал. http://codearticles.ru/articles/2337 http://codearticles.ru/articles/2506 Боян . Глобальный обработчик системных ошибок надо делать через global.asax. А прикладные ошибки лучше ловить фильтрами . codearticles.ruАлексей КЧё опять? Будем действовать как в Win API: getlasterror, hresult и всё такое? Сделать специальный InfoException для прикладных ошибок не лучше? Во все времена делалось именно так. пропущено... Лучше написать фильтр, и присобачить его на соответствующем уровне. В сад! :)А если базовый контроллер будет иметь ответственность прикладного назначения, как это обычно бывает, и нужно будет по разному обрабатывать прикладные ошибки? Нарушение SRP, не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 15:35 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
skyANAРешили не по стандарту ошибки обрабатыватьТо есть предоставление средой MVC мне возможности обрабатывать исключения - нестандарт? skyANAсами и разбирайтесь :)Я бы поразбирался, но у меня нет опыта отладки на хостинге и с данным вопросом не знаю куда соваться. Алексей К 16655639 ?Shocker.ProbazileПотому что веб-сервер используемый при отладке и полноценный IIS это две разных вещи.это-то я догадался, но что именно влияет? По моему пониманию, это вообще не должно было выйти за пределы MVC-шной и моей dll-ки и IIS-у должен быть отдан только готовый statuscode? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 15:38 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
Shocker.ProskyANAРешили не по стандарту ошибки обрабатыватьТо есть предоставление средой MVC мне возможности обрабатывать исключения - нестандарт?StatusCode 200 возвращать не стандарт. Exception Handling in ASP.NET MVC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 15:42 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
Алексей КГлобальный обработчик системных ошибок надо делать через global.asax. Забудь про global.asax, иначе MVC6 пошлет тебя далеко в лес. Алексей КА прикладные ошибки лучше ловить фильтрами Не принципиально. Алексей КА если базовый контроллер будет иметь ответственность прикладного назначения, как это обычно бывает, и нужно будет по разному обрабатывать прикладные ошибки? Нарушение SRP, не? Никаких по-разному, никаких прикладных назначений. Контроллеры все равны и подчиняются своему базовому классу - основа ООП. Все попрыгушки и мультики идут в сад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 15:45 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
Shocker.ProАлексей К 16655639 ?Shocker.Proпропущено... это-то я догадался, но что именно влияет? По моему пониманию, это вообще не должно было выйти за пределы MVC-шной и моей dll-ки и IIS-у должен быть отдан только готовый statuscode?Имел ввиду версию IIS 7.5, 8.5 и т. п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 15:46 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
Алексей КГлобальный обработчик системных ошибок надо делать через global.asax. С этим как раз таки и проблема - обычные 404-ые ловит ( http://site.com/ghghghgh), а с точками в урле вообще в Application_Error() не попадает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 15:50 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
codearticles.ruАлексей КГлобальный обработчик системных ошибок надо делать через global.asax. Забудь про global.asax, иначе MVC6 пошлет тебя далеко в лес.А MVC6 есть? Вот когда будет, тогда и будем. :-) codearticles.ruАлексей КА прикладные ошибки лучше ловить фильтрами Не принципиально.Принципиально! Нарушение SRP - худшее из бед! Предлагается прикручивать обработку ошибок не наследованием, а композицией. codearticles.ruАлексей КА если базовый контроллер будет иметь ответственность прикладного назначения, как это обычно бывает, и нужно будет по разному обрабатывать прикладные ошибки? Нарушение SRP, не? Никаких по-разному, никаких прикладных назначений.Базовый контроллер для, например, типового CRUD делать не надо? codearticles.ruКонтроллеры все равны и подчиняются своему базовому классу - основа ООП. Все попрыгушки и мультики идут в сад.Это одно из типовых решений, называемое Layer Superclass, но не об этом сейчас. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 15:52 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
st_stАлексей КГлобальный обработчик системных ошибок надо делать через global.asax. С этим как раз таки и проблема - обычные 404-ые ловит ( http://site.com/ghghghgh), а с точками в урле вообще в Application_Error() не попадает.Если туда не попадает, значит в приложении обработать такую ошибку невозможно, если я ничего не путаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 15:54 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
codearticles.ruКонтроллеры все равны и подчиняются своему базовому классу - основа ООП. Опытный программист всегда предпочтёт агрегацию наследованию, аспект оверрайду. ООП как основа для архитектуры хороша только для узконаправленных библиотек и задач, напрямую отражающих наследование в своей логике. Основывать архитектуру приложения на ООП будет только новичёк, прочитавший одну из пропогандонских книжонок времён мамонта, или упоротый укурыш. Базовый контроллер как "центр вселенной" приложения это однозначная тухлятина. Тем более для таких вещей, как обработка ошибок и прокидывание сервисов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 15:57 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
st_stАлексей КГлобальный обработчик системных ошибок надо делать через global.asax. С этим как раз таки и проблема - обычные 404-ые ловит ( http://site.com/ghghghgh), а с точками в урле вообще в Application_Error() не попадает.Хотя, может быть это ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 16:01 |
|
||
|
MVC: обработка исключения в контроллере
|
|||
|---|---|---|---|
|
#18+
hVosttcodearticles.ruКонтроллеры все равны и подчиняются своему базовому классу - основа ООП. Опытный программист всегда предпочтёт агрегацию наследованию, аспект оверрайду. ООП как основа для архитектуры хороша только для узконаправленных библиотек и задач, напрямую отражающих наследование в своей логике. Основывать архитектуру приложения на ООП будет только новичёк, прочитавший одну из пропогандонских книжонок времён мамонта, или упоротый укурыш. Базовый контроллер как "центр вселенной" приложения это однозначная тухлятина. Тем более для таких вещей, как обработка ошибок и прокидывание сервисов. +1234567890 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2014, 16:03 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38766186&tid=1356943]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 265ms |
| total: | 415ms |

| 0 / 0 |
