我应该记录Elmah以外的例外吗?

时间:2014-11-27 14:09:38

标签: c# asp.net-mvc elmah

我想知道到底应该记录什么。我的意思是,我可以记录异常,这是非常标准的,但我可以使用Elmah记录其他内容吗?

我实际上并没有使用那么多尝试,抓住块。我读到这些应该仅用于特殊情况,而不是“标准行为”,因为它们可能会降低性能。

通常我会使用简单的if子句来阻止异常发生。

例如,简单除以0。

int z = x/y;

我会写如下:

int z;
if(y!=0)
{
  z = x/y;
}
else
{
   z=0;
}

现在这对我来说是完全可以接受的。

我不认为这是一个例外,但仍然......我想知道y参数等于0的地方。

使用Elmah记录此信息是否可以?或者我应该使用其他东西吗?

2 个答案:

答案 0 :(得分:1)

您可以手动轻松登录elmah。请致电:

 ErrorSignal.FromCurrentContext().Raise(new Exception());

对于自定义消息,只需运行:

 var customEx = new Exception("Hey y!=0!!!"); 
 ErrorSignal.FromCurrentContext().Raise(customEx);

您还可以决定使用log4net或nlog进行更复杂的日志记录并使用Elmah appender

答案 1 :(得分:1)

您还可以帮助记录您自己的错误:

public static void OwnError(Exception e, String myMsg)
{
     var exception = new Exception(myMsg, e);
     Elmah.ErrorSignal.FromCurrentContext().Raise(exception);    
}