我想了解为什么会发生以下行为以及实现我需要的任何方法。
我有一个主线程,它会让一个backgorund工作人员进行一些处理。我有一个后台工作者完成甚至处理程序,我听到任何错误。当出现错误时,我抛出错误并允许它浮动回主线程。我不想处理错误并显示来自后台工作者的任何消息。
但是当错误最终被困在主线程中时,我没有看到实际的错误消息,但是我得到了'目标调用未知'错误。想了解为什么以及任何方式来做这种情况。
评论: 添加了源代码示例。由于此逻辑在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;
}
}
}
谢谢, 摩尼
答案 0 :(得分:0)
在不查看代码的情况下,很难猜测您是如何传递异常的,但是您是否检查了您收到的Exception的InnerException属性。它可能包含您要查找的信息。如果没有信息,可能是捕获异常并“浮动”它的代码本身可能会产生错误。