Захватите последнее исключение, используя отражение или через HttpContext.Current.Server.GetLastError () - PullRequest
0 голосов
/ 08 февраля 2012

У меня есть метод, который вызывается при возникновении исключения. Только Exception.ToString() передается ему. В настоящее время невозможно изменить параметры так, чтобы они принимали Exception вместо строки, потому что нам пришлось бы менять много страниц, и я не могу это контролировать (пожалуйста, мне не нужно, чтобы кто-нибудь говорил мне сделай это, потому что поверь мне, я бы хотел просто сделать это). У нас уже есть класс, который обрабатывает исключения, но у меня есть возможность обновить этот метод, и я хотел знать, возможно ли получить последнее исключение, используя отражение или HttpContext.Current.Server.GetLastError(). С GetLastError() это не работает, потому что исключение было обработано. Есть ли способ обойти это, может быть, с отражением или что-то? Любая помощь очень ценится. Если это обсуждалось ранее, пожалуйста, покажите мне, потому что я не смог найти похожий вопрос.

1 Ответ

0 голосов
/ 08 февраля 2012

Быстрое быстрое решение, которое я использовал сейчас (используя некоторую информацию из Exception and Reflection ):

 string typeName = err.Substring(0, err.IndexOf(":"));
 string message = err.Length > typeName.Length + 2 ? err.Substring(err.IndexOf(":") + 1) : string.Empty;
 Type type = Type.GetType(typeName);
 ConstructorInfo ctor = type.GetConstructor(new[] { typeof(string) });
 object exception = ctor.Invoke(new object[] { message });

string err - это Exception.ToString (), который будет иметь типисключения, а затем я делаю сообщение остальной части метода tostring.Это будет делать на самом деле.Если бы я хотел быть по-настоящему явным, я мог бы использовать отражение, чтобы редактировать каждое свойство, но там есть место для ошибки, и у tostring действительно будет все, и, поскольку я создаю тип исключения, все в порядке.:) Надеюсь, это кому-то поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...