堆栈跟踪如何找出导致异常的方法

时间:2014-05-11 20:29:37

标签: c# stack-trace

我有一个基本错误:

  

将datetime2数据类型转换为日期时间数据类型   导致超出范围的价值。\ r \ n声明已经发布   终止。

我在多个地方都有这个东西,但是当堆栈跟踪引发异常时,我不知道如何找到导致问题的代码或部分代码。

问题是它难以调试,因为当我添加1个元素时它可以正常工作,当我循环时我猜它会以某种方式丢失datetime的赋值。

代码太长了,我只需要一个提示如何在抛出异常时读取堆栈跟踪。

enter image description here

2 个答案:

答案 0 :(得分:1)

堆栈跟踪可能无法显示您想要的所有内容,但是,请尝试查看右侧的选项卡:可能是select语句(可能是最后一个)导致错误,您可能想要检查它们。

另外,我建议在SQL数据库中为表使用适当的类型,这样的错误表示架构中存在错误,您可能需要重新考虑(或者至少检查每一行的类型)数据库类型对于可能携带的数据。

答案 1 :(得分:0)

查看callstack窗口。我从你的截图中提取了这个:

Callstack window

这不是引发异常的地方,但这是您可以处理它的地方。你的代码调用别人的方法,你可能传递了一个无效的参数。

外部代码抛出异常,这意味着不是您的代码。但是,除非您认为它是其他人的代码(例如Microsoft)中的错误,并且您想向Microsoft提交错误报告,否则您不需要该信息。

如果您真的想知道问题出在哪里,请右键单击callstack并启用[x] Show external code。请注意,您可能没有源代码,甚至从未获得它。