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

    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安装异常处理应用程序块?

最佳答案

问题不在于类型转换,而是您的_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;
  }
}

08-27 01:01