.NET: как получить доступ к объекту ExceptionContext из объекта Exception

Я пишу собственный метод обработки ошибок и передаю ему объект Exception. Мне нужно иметь доступ к объекту ExceptionContext этого исключения, поэтому я могу установить для свойства значение true, прежде чем выполнять представление Error. Кто-нибудь знает, как добраться до ExceptionContext, учитывая только объект Exception?

Для справки, причина, по которой мне нужен объект ExceptionContext, заключается в том, что я могу выполнить код ниже:

filterContext.ExceptionHandled = true; // filterContext is of type ExceptionContext
this.View("Error_partial", filterContext.Exception).ExecuteResult(this.ControllerContext);

Я читал в Интернете, что для ExceptionHandled должно быть установлено значение true, иначе следующий оператор вызовет желтый экран смерти, а не дружественную страницу «Error_partial», как мне бы хотелось. Поэтому важно, чтобы я мог получить доступ к ExceptionContext исключения. Любая помощь будет принята с благодарностью.


person MegaMatt    schedule 11.02.2010    source источник


Ответы (2)


Очень поздно на вечеринку, и я полагаю, вы уже решили это, но на благо других:

Вы можете создать класс, реализующий IExceptionFilter, и добавить его в коллекцию фильтров для вашего контроллера или в класс GlobalFilterCollection. Поместите свою пользовательскую логику обработки исключений в метод OnException класса, который принимает аргумент ExceptionContext. Это объект, свойство ExceptionHandled которого должно быть установлено на true, чтобы избежать желтого экрана смерти.

person phoog    schedule 20.03.2012

Если у вас уже нет объекта ExceptionContext;

Вы должны создать его и передать ему свой объект Exception, после чего он создаст ExceptionContext на основе переданного вами объекта Exception.

Посмотрите здесь

person Tony The Lion    schedule 11.02.2010
comment
@ Тони, я думаю, я думал об этом, но мне было интересно, останутся ли связанные свойства ExceptionContext такими же. Очевидно, что если я создам новый, не будут ли сброшены свойства? Может быть, это не имеет значения, учитывая то, что я пытаюсь сделать... - person MegaMatt; 11.02.2010
comment
@Mega Matt, насколько я понимаю в библиотеке MSDN, там говорится, что он будет использовать текущий объект Exception для создания нового объекта, поэтому, если ему нужно установить какие-либо свойства, я думаю, он это сделает. однако я не уверен... - person Tony The Lion; 11.02.2010