工作线程的错误信息丢失

本文关键字:信息 错误 线程 工作 | 更新日期: 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属性吗。它可能包含您正在查找的信息。如果没有信息,可能是捕获异常并"浮动"它的代码本身可能正在生成错误。