powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC: обработка исключения в контроллере
25 сообщений из 406, страница 6 из 17
MVC: обработка исключения в контроллере
    #38767334
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
В нём отображается MessageBox, сделанный через Bootstrap-ный modal.А если я хочу не MessageBox, а другое поведение?Очевидно, придётся переписать содержимое класса Log. :-)
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767335
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
Ну где, где... Вот: 16657497 :)Ну это же не запрещает, если надо. :-)Ахаха, Алексей в своём репертуаре.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767336
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
А если я хочу не MessageBox, а другое поведение?Очевидно, придётся переписать содержимое класса Log. :-)Переписать? Как всё запущено.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767337
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"визуализация полученных данных на клиенте, как мы понимаем, может быть любая", если переписать...
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767338
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
свежий взгляд, чо
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767339
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Очевидно, придётся переписать содержимое класса Log. :-)Переписать? Как всё запущено.А как надо? Чтобы оно само написалось?
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767344
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
Переписать? Как всё запущено.А как надо? Чтобы оно само написалось? Ну хотелось бы как-то гибко в зависимости от модели прозрачно использовать ту, или иную реализацию.
А не либо MessageBox, либо переписать :)

И не хотелось, чтобы response parser вообще что-то знал о UI.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767353
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
А как надо? Чтобы оно само написалось? Ну хотелось бы как-то гибко в зависимости от модели прозрачно использовать ту, или иную реализацию.
А не либо MessageBox, либо переписать :)Надо будет - сделаем. Пока не надо.

skyANAИ не хотелось, чтобы response parser вообще что-то знал о UI.Он про UI ничего и не знает. Он знает только про класс Log, который в любой момент может стать интерфейсом, внутри класса Log можно сделать через IoC механизм хранилищ - тут много способов решения. Главное, что абстракция в виде класса Log есть, остальное всё разрулится по мере необходимости.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767355
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КhVosttпропущено...


Я спрашиваю. Ответить можешь?Странный вопрос, впрочем, да, есть.

Зачем, если есть ExceptionFilterAttribute?
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767360
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей Кпропущено...
Странный вопрос, впрочем, да, есть.

Зачем, если есть ExceptionFilterAttribute?Чтобы обрабатывать по месту при необходимости. Впрочем, чаще есть необходимость генерации исключения:
Код: c#
1.
2.
3.
4.
5.
void ValidateEntity(Entity entity)
{
    if (entity.A > entity.B)
        throw new InfoException("Нельзя A больше B. До свидания!");
}

Вот она, ошибка прикладного уровня, которая стала для некоторых открытием.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767363
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей Кпропущено...
Странный вопрос, впрочем, да, есть.

Зачем, если есть ExceptionFilterAttribute?Вдогонку: я оперирую понятиями "чаще" и "реже", а не "бывает" и "не бывает", как некоторым хотелось бы. :-)
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767379
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КskyANAпропущено...
Ну хотелось бы как-то гибко в зависимости от модели прозрачно использовать ту, или иную реализацию.
А не либо MessageBox, либо переписать :)Надо будет - сделаем. Пока не надо.

skyANAИ не хотелось, чтобы response parser вообще что-то знал о UI.Он про UI ничего и не знает. Он знает только про класс Log, который в любой момент может стать интерфейсом, внутри класса Log можно сделать через IoC механизм хранилищ - тут много способов решения. Главное, что абстракция в виде класса Log есть, остальное всё разрулится по мере необходимости.Да, да, да... "придётся переписать"
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767382
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КhVosttпропущено...


Зачем, если есть ExceptionFilterAttribute?Чтобы обрабатывать по месту при необходимости. Впрочем, чаще есть необходимость генерации исключения:
Код: c#
1.
2.
3.
4.
5.
void ValidateEntity(Entity entity)
{
    if (entity.A > entity.B)
        throw new InfoException("Нельзя A больше B. До свидания!");
}

Вот она, ошибка прикладного уровня, которая стала для некоторых открытием.И в чём смысл такого InfoException? Чисто чтобы в фильтре по типу отличить?

Хорошо вам в корпоративе. Не надо о локализации думать и о том, что неплохо бы данные какие добавить, validatione rule к примеру, который был нарушен.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767383
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К, а вот если не пользователь, а сервис запулит пачку данных, среди которых будет парочка невалидных объектов, то он также цинично будет послан на фиг: "Нельзя A больше B. До свидания!"?
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767406
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КЧтобы обрабатывать по месту при необходимости. Впрочем, чаще есть необходимость генерации исключения:
Код: c#
1.
2.
3.
4.
5.
void ValidateEntity(Entity entity)
{
    if (entity.A > entity.B)
        throw new InfoException("Нельзя A больше B. До свидания!");
}


Вот она, ошибка прикладного уровня, которая стала для некоторых открытием.

На кой хер использовать исключения для реализации прикладной логики? Мало того, так делать -- это отвратительный, мерзкий тон, так ещё и путаешь людей, которые могут сопровождать этот код: ведь оказывается InfoException это вовсе не ошибка, а контейнер для проброса сообщения "наверх". Фу-фу-фу. Можешь считать, что это норм, но, как говориться, писать тухлый говнокод не запретишь. Селяви. А то мозг тут нам выносил, теперь-то всё понятно
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767407
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAИ в чём смысл такого InfoException? Чисто чтобы в фильтре по типу отличить?

Об этом уже Рихтер писал не однократно. Новички и неопытные сопливые программисты часто пытаются заюзать исключение, как контейнер для проброса информации сквозь слои инфраструктуры, ведь зачем использовать мозг и творить внятную архитектуру? Говорилось миру не однократно, это касается не только C#, но и С++ и Java и других платформ: не используйте исключения для реализации логики, как контейнер для переноса информационных сообщений, как способ для сообщений "сквозь слои", это средство для обработки ошибок, но не для логики (абсолютно не важно какого уровня, топ или лоу). Всякие InfoException -- это просто курам на смех. Вот находятся же умники...
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767460
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttskyANAИ в чём смысл такого InfoException? Чисто чтобы в фильтре по типу отличить?

Об этом уже Рихтер писал не однократно. Новички и неопытные сопливые программисты часто пытаются заюзать исключение, как контейнер для проброса информации сквозь слои инфраструктуры, ведь зачем использовать мозг и творить внятную архитектуру? Говорилось миру не однократно, это касается не только C#, но и С++ и Java и других платформ: не используйте исключения для реализации логики, как контейнер для переноса информационных сообщений, как способ для сообщений "сквозь слои", это средство для обработки ошибок, но не для логики (абсолютно не важно какого уровня, топ или лоу). Всякие InfoException -- это просто курам на смех. Вот находятся же умники...Теперь давай список негативных эффектов от предлагаемого решения, конкретно, по пунктам.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767462
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей Кпропущено...
Чтобы обрабатывать по месту при необходимости. Впрочем, чаще есть необходимость генерации исключения:
Код: c#
1.
2.
3.
4.
5.
void ValidateEntity(Entity entity)
{
    if (entity.A > entity.B)
        throw new InfoException("Нельзя A больше B. До свидания!");
}

Вот она, ошибка прикладного уровня, которая стала для некоторых открытием.И в чём смысл такого InfoException? Чисто чтобы в фильтре по типу отличить?Да.
skyANAХорошо вам в корпоративе. Не надо о локализации думатьВместо строковой константы в исключении указать ID сообщения конечно-же сложно.
skyANAи о том, что неплохо бы данные какие добавить, validatione rule к примеру, который был нарушен.Добавить свойств к классу исключения тоже можно.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767464
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANAАлексей К, а вот если не пользователь, а сервис запулит пачку данных, среди которых будет парочка невалидных объектов, то он также цинично будет послан на фиг: "Нельзя A больше B. До свидания!"?Всё зависит от технического задания. Очевидно, логику можно написать как угодно. Если речь идёт о сохранении не в одной транзакции, соглашусь, результат, наверное, лучше вернуть не исключением.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767490
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КТеперь давай список негативных эффектов от предлагаемого решения, конкретно, по пунктам.

Проверка данных на корректность решается с помощью механизмов валидации, коих что ASP.NET MVC, что в ASP.NET WebAPI навалено плотной кучей, также легко и непринуждённо прибивается к JavaScript, и даже к твоему любимому knockout.

Недопустимые операции не должны допускаться, а не осыпать пользователя тупыми проклятьями "не то нажал!!!", "не так сделал!!!" -- истеричные программы, напрямую отражающие сущность программиста должны прямиком направляться в сад. Как это делается? Кнопочки дисейблятся или скрываются, чекбоксы, радиобатоны, группы контролов, ссылки, поля и другие неведыме штуковины не должны давать пользователю нарваться на истеричный мат.

Что ещё? Нарушения целостности данных, например, дублирование уникального индекса поля должно решаться валидацией, а не исключением. Арифметические выражения, и деления на нуль -- валидация. Загрузка неправильных файлов и изображений -- валидация. И т.д.

Что в остатке? Реальные ошибки-исключения, которые были непредвидены, не учтены или их тупо нельзя было предвидеть на момент разработки. А это значит, что пользователя надо ласково оповестить, что программер натупил и очень-очень скоро руководство надаёт тому по шее, чтобы он исправел багу, а не показывать пользователю "расшифрованное" сообщение об ошибке -- это совершенно точно ничем не поможет пользователю, только резко ухудшит его настроение. В отдельных случаях это может напрямую сказаться на финансовых показателях компании. Никакого смысла в анализе "типа" ошибки здесь нет, так как ошибки поэтому и называются ошибками, что нарушают логику программы.

А закладывать ошибки в логику программы будет только дундук. Превращать исключения в средство доставки сообщений пользователю -- идиотизм чистой воды. Если этот идиотизм сам не излечится со временем, с опытом, поможет только, как это модно сейчас говорить в определённых кругах, люстрация


Вот ещё пример.

Пользователь жмёт на чужой комментарий "Ответить", и долго, вдумчиво выплёскивает то, что у него накопилось к оппоненту. Но в это время оппонент решил, что человечество к его комментарию пока ещё не готово и удаляет своё творение. Пользователь жмёт "Отправить" и... получает матюки в ответ, дескать ты чё такой тупой, пытаешься отвечать на удалённые комментарии. Хотя можно было предложить пользователю создать новый комментарий с отправленным текстом вместо ответа или сохранить в черновики, или отправить личное сообщение... Это невозможно никак сделать с твоим подходом. Никак. Ошибки надо ловить там где их можно (и нужно) обработать. А не рисовать некий универсальный подход, которым можно только задницу подтереть.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767559
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей КhVosttпропущено...
Зачем, если есть ExceptionFilterAttribute?Вдогонку: я оперирую понятиями "чаще" и "реже", а не "бывает" и "не бывает", как некоторым хотелось бы. :-)
За такое нужно минимум ведро на голову одень, взять палочки и начать барабанить по ведру
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767570
codearticles.ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей КТеперь давай список негативных эффектов от предлагаемого решения, конкретно, по пунктам.
Самый жирный гвоздь в твоё изобретение - нерасширяемое решение, которое нельзя ни с чем интегрировать. Нужно будет писать всяческие обертки и костыли для трансляции твоего исключения во внятный вид и для каждого случая. Тот же unobtrusive уже идет лесом. Для таких телодвижений есть универсальные IDataErrorInfo и IValidatableObject, которые можно использовать хоть в сильверлайте космосе. И самое главное - ты всеми будешь понят и распознан, не надо ничего писать в нагрузку.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767601
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttКнопочки дисейблятся или скрываются, чекбоксы, радиобатоны, группы контролов, ссылки, поля и другие неведыме штуковины не должны давать пользователю нарваться на истеричный мат.Типичная ошибка профессионального дилетанта в области UI: кнопочка задизейблена, пользователь сидит в обнимку с хрустальным шаром и гадает, почему кнопка недоступна. Так нужно делать только в самых очевидных случаях, которых не много.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767602
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
codearticles.ruАлексей КТеперь давай список негативных эффектов от предлагаемого решения, конкретно, по пунктам.
Самый жирный гвоздь в твоё изобретение - нерасширяемое решение, которое нельзя ни с чем интегрировать. Нужно будет писать всяческие обертки и костыли для трансляции твоего исключения во внятный вид и для каждого случая. Тот же unobtrusive уже идет лесом. Для таких телодвижений есть универсальные IDataErrorInfo и IValidatableObject, которые можно использовать хоть в сильверлайте космосе. И самое главное - ты всеми будешь понят и распознан, не надо ничего писать в нагрузку.Причём тут валидация в UI на клиенте? Мы не об этом сейчас.
...
Рейтинг: 0 / 0
MVC: обработка исключения в контроллере
    #38767604
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttВот ещё пример.

Пользователь жмёт на чужой комментарий "Ответить", и долго, вдумчиво выплёскивает то, что у него накопилось к оппоненту. Но в это время оппонент решил, что человечество к его комментарию пока ещё не готово и удаляет своё творение. Пользователь жмёт "Отправить" и... получает матюки в ответ, дескать ты чё такой тупой, пытаешься отвечать на удалённые комментарии. Хотя можно было предложить пользователю создать новый комментарий с отправленным текстом вместо ответа или сохранить в черновики, или отправить личное сообщение... Это невозможно никак сделать с твоим подходом. Никак. Ошибки надо ловить там где их можно (и нужно) обработать. А не рисовать некий универсальный подход, которым можно только задницу подтереть.Ну с чего ты взял, что это невозможно? Всё возможно, просто ты не знаешь как. :-)
...
Рейтинг: 0 / 0
25 сообщений из 406, страница 6 из 17
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC: обработка исключения в контроллере
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]