我正在记录错误并向自己发送异常日志!如下面的代码
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安装异常处理应用程序块?
答案 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)