工作线程的错误信息丢失
本文关键字:信息 错误 线程 工作 | 更新日期: 2023-09-27 17:59:29
我想了解为什么会发生以下行为,以及实现我所需要的任何方法。
我有一个主线程,它要求后台工作人员进行一些处理。我有一个后台工作人员完成了甚至处理程序,我在那里监听任何错误。当出现错误时,我抛出错误并允许它浮动回主线程。我不想处理错误并显示来自后台工作人员的任何消息。
但是,当错误最终被困在主线程中时,我看不到实际的错误消息,但我得到了一个"目标调用未知"错误。我想了解为什么会出现这种情况,以及如何处理这种情况。
评论:根据要求添加了源代码示例。之所以添加WCF,是因为此逻辑是在WCF服务场景中编码的。希望它现在更有意义。
class ParentClass
{
static void main()
{
try
{
Thread t = new Thread(new ThreadStart(M1));
t.Start();
// ...
// ...
}
catch
{
// here I dont see the error as 'date time conversion'
// but see a generic error as I mentioned
}
}
static void M1()
{
try
{
Convert.ToDateTime("sss");
}
catch (Exception e)
{
// Here I see the error as 'error in date time conversion'
throw;
}
}
}
谢谢,Mani
如果不看代码,很难猜测您是如何传递异常的,但您检查了收到的异常的InnerException属性吗。它可能包含您正在查找的信息。如果没有信息,可能是捕获异常并"浮动"它的代码本身可能正在生成错误。