获取基本异常信息

时间:2009-01-15 13:27:23

标签: c# exception

我正在记录错误并向自己发送异常日志!如下面的代码

    private void ExceptionForm_Load(object sender, EventArgs e)
    {
        Type exceptionType = _exception.GetType();

        txtErrorMessage.Text = _exception.ToString();

        if (exceptionType == typeof(Sybase.DataWindow.DbErrorException))
        {
             _exception = (Sybase.DataWindow.DbErrorException)_exception;

            txtErrorMessage.Text += "Exception SQL data:" +  exception;
        }

    }

现在的问题是这个。如果(exceptionType == typeof(Sybase.DataWindow.DbErrorException))那么_exception有额外的功能,如SqlSyntax出错(例如从表中更新某些东西)问题是如何显示该数据。它似乎不是我的例外。 exceptiontype = DbErrorException但我似乎无法将我的_exception转换为它。或者这是不好的做法?或者我应该删除所有内容并从MS安装异常处理应用程序块?

2 个答案:

答案 0 :(得分:4)

问题不在于演员 - 你的_exception变量(大概是)Exception类型。您需要声明一个正确类型的新变量。另外,你有任何理由使用GetType()而不是“as”或“is”吗?衍生的例外呢?试试这个:

private void ExceptionForm_Load(object sender, EventArgs e)
{
  DbErrorException specificException = _exception as DbErrorException;
  if (specificException != null)
  {
     txtErrorMessage.Text += "SqlSyntax=" + specificException.SqlSyntax;
  }
}

答案 1 :(得分:1)

看起来像乔恩!不知道“as”和“is”。我的_exception确实是Exception类型(因为我将所有异常发送到这个“日志表单”)。如果我想要所有数据,是否必须将我的异常所有数据转换为特定的异常类型? (例如webexception,socketexception)