Обрабатывание Исключений, которые происходят в Конструкторе Контроллера MVC asp.net

Что лучший способ состоит в том, чтобы обработать исключения, которые происходят из конструктора контроллера?

Все, о чем я могу думать, чтобы сделать, использовать Application_OnError () или поместить попытку/выгоду в мой ControllerFactory.

Ни одно из этих решений не кажется идеальным. Application_OnError к широкому - у меня есть некоторое non-mvc содержание в сайте, который имеет его собственную обработку ошибок.

Используя попытку/выгоду блок кажется видом hacky.

Если я служу другому типу контента-html/text/json/rss.... Я хотел бы смочь обработать исключение из метода действия вместо того, чтобы иметь необходимость записать все виды условий определить какой сообщение об ошибке для обслуживания.

Я пропускаю что-то здесь, или кто-либо еще имел дело с этим?

5
задан womp 22 April 2010 в 23:21
поделиться

1 ответ

Если исключение происходит в вашем ControllerFactory при создании контроллера в первую очередь, вы никак не сможете обработать исключение в методе действия.

Лично я бы просто попробовал / поймал, создал экземпляр какого-нибудь контроллера обработки ошибок и вместо этого направил бы запрос через него.

Лучше спросить: что ваши контроллеры настолько зависят от того, что они не выполняются, что им приходится генерировать исключения при создании? Якобы простое создание контроллеров не должно быть огромным источником исключений. Если да, то, возможно, вы могли бы посмотреть на ленивое создание экземпляров зависимостей в методах действия (а не в конструкторе) и на реализацию подхода ErrorHandlingController . Это подтолкнет исключения «вниз» к самим контроллерам, чтобы вы могли использовать более ориентированный на контроллер подход к их обработке.

7
ответ дан 14 December 2019 в 08:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: