Elmah добавит сообщение об ошибке, зарегистрированном с помощью вызова для повышения (E)

StackOverflow https://stackoverflow.com/questions/3812538

  •  26-09-2019
  •  | 
  •  

Вопрос

Я немного запутался в том, как добавить сообщение об ошибке, регистрируемую программически с Elmah.

например:

public ActionResult DoSomething(int id)
{
    try { ... }

    catch (Exception e)
    {
        // I want to include the 'id' param value here, and maybe some
        // other stuff, but how?
        ErrorSignal.FromCurrentContext().Raise(e);
    }
}

Похоже, все Elmah могут сделать это зарегистрировать необработанное исключение, как я могу также войти в систему моей собственной отладочной информации?

Это было полезно?

Решение

Вы можете бросить новое исключение, установив оригинал, так как внутреннее исключение и Elmah будут регистрировать сообщения для обоих:

catch(Exception e)
{
    Exception ex = new Exception("ID = 1", e);
    ErrorSignal.FromCurrentContext().Raise(ex);
}

покажет

System.Exception: ID = 1 ---> System.NullReferenceException: Object reference not set to an instance of an object.

Другие советы

Я обнаружил, что я также могу сделать что-то вроде:

Elmah.ErrorSignal.FromCurrentContext().Raise(new NotImplementedException("class      FbCallback.Page_Load() Request.Url= " + Request.Url));

Для регистрации моих собственных сообщений. Тогда, когда я просматриваю

http://localhost:5050/elmah.axd

Я вижу свои сообщения как тип NotimplementedException. Не очень красиво, но работает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top