提问者:小点点

C#异常处理(捕获所有异常,用不同的方法对它们进行排序)


我现在正在处理异常。 Im正在使用

try
{
   stuff();
}
catch (NullReferenceException ex)
{
   logTheError(ex, "NullReferenceException", "functionname");
}
catch (Exception ex)
{
   logTheError(ex, "Exception", "functionname");
}

我想在这里捕获所有异常,并在logTheError-function中处理它们(该函数已经将一个条目写入数据库以备以后使用)。 但是如果异常是NullReferenceException,我无法检查它。

if (ex == NullReferenceException)
or
if (ex.GetType == NullReferenceException)

这没有奏效。 我认为有一个非常简单的解决方法。 我还想知道,如果我能得到异常的名称(也许这就是类型?)

提前谢谢你!


共1个答案

匿名用户

请尝试以下操作:

try
{
    stuff();
}
catch ( Exception ex )
{
    logTheError( ex, "Exception", "functionname" );
}

然后在日志记录函数中:

if ( ex is NullReferenceException )
    handleNullreference();
else if ( ex is KeyNotFoundException )
    handleKeyNotFound();
// ...
else
    handleUnknown();