我正在序列化一个XML文件。在序列化过程中,我收到一般异常。很难追查这个问题。
我的代码是:
试
{
string m_fileName = @“d:\ Xml \ Person.xml”;
XmlSerializer xmlPerSerlzr = new XmlSerializer(typeof(person));
txtWrt = new StreamWriter(m_fileName);
xmlPerSerlzr.Serialize(txtWrt,person);
}
catch(异常serExp)
{
MessageBox.Show(“Exception is:”+ serExp.Message.ToString());
}
错误讯息:
有一个错误反映了类型“人”
<小时/>我的问题是如何强制CLR发出确切的错误?
答案 0 :(得分:1)
检查例外的类型,例如
serExp.GetType().ToString()
并检查内部异常(类型和消息)。
这应该会给你一些更有用的信息。
答案 1 :(得分:1)
使用:
exc.ToString();
在Exception DialogBox的调试模式下,选择查看详细信息选项。 可能你没有实现0参数构造函数。
答案 2 :(得分:0)
使用
serExp.StackTrace
而不是
serExp.Message.ToString()
答案 3 :(得分:0)
我认为最好还要检查堆栈跟踪和内部异常。
你可以使用类似的东西
string GetExceptionString(Exception ex)
{
string str = "";
while (ex != null)
{
str += ex.Message + "\n" + ex.StackTrace;
ex = ex.InnerException;
}
return str;
}
答案 4 :(得分:0)
在catch子句中设置断点,然后在调试模式下运行。然后,您可以更轻松地探索异常对象并找出正在发生的事情。