我在我的应用程序的主页面上声明了一个库的成员:
private OpticalReaderLib.OpticalReaderTask _task = new OpticalReaderLib.OpticalReaderTask();
它工作正常,直到我想在不同的时间导航回此页面。它会出现错误"类型' System.Exception'发生在OpticalReaderLib.DLL中,但未在用户代码"。
中处理有谁知道为什么会这样?
感谢。
答案 0 :(得分:1)
System.Exception是所有异常的基类,因此这是一个非常通用的错误消息。
您可以尝试记录有关在调查过程中引发的异常的更多详细信息(例如exception.Message或exception.InnerException)。 (通过try-catch声明)。
看起来你正在初始化一个字段,这个代码在哪里被执行?
因评论而更新 作为发现异常错误的临时解决方案。
private OpticalReaderLib.OpticalReaderTask _tempTask;
private OpticalReaderLib.OpticalReaderTask _task
{
get
{
//code to debug the error that is occuring
try
{
if (_tempTask == null)
_tempTask = new OpticalReaderLib.OpticalReaderTask();
else
return _tempTask;
}
catch (Exception exception)
{
//Log the exception detail here
}
}
}
答案 1 :(得分:0)
protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
if (_task != null)
{
_task.Completed -= OpticalReaderTask_Completed;
_task.Dispose();
_task = null;
}
base.OnBackKeyPress(e);
}