在 C# WinForms 中使用解析数据的方法时如何找到包含异常的行
How can i find the Line that Contains the exception when Using methods that Parse the Data in C# WinForms
所以这就是我的麻烦开始的方式......我制作了一个 cs 文件,其中包含我项目中的所有辅助方法,它对我来说有点像工具箱......其中一种方法如下:
static public decimal ToDecimal(this string str)
{
return decimal.Parse(str);
}
正如这个方法所建议的那样,它让我可以对项目中的不同变量进行 .ToDecimal,这是一种提高编码速度的方法
现在这是我的问题:
每当 decimal.parse(str) 的解析时;失败,IDE 将我引导至方法 ToDecimal...
不是调用该方法的实际行......这让我在一个项目上停留了一天以找出真正的异常......
所以我的问题是:
有没有办法在解决方案中找到实际导致异常的行?即调用异常方法的行...
提醒你们,我在我的解决方案中调用了相同的方法 (ToDecimal()) 超过 1k 次...所以我试图弄清楚这 1k 次中的哪一次是导致的例外...
谢谢!
尝试使用此代码
static public decimal ToDecimal(this string str){
decimal dec;
if (decimal.TryParse(str, out dec))
{
return dec;
}
else
{
MessageBox.Show(str);
return 0.0;
}
}
每当解析抛出异常时,if 语句将失败,else 部分将给出导致异常的字符串。
你也可以在else语句中附加一个断点。
添加 try/catch 并查看调用堆栈很难吗?
所以这就是我的麻烦开始的方式......我制作了一个 cs 文件,其中包含我项目中的所有辅助方法,它对我来说有点像工具箱......其中一种方法如下:
static public decimal ToDecimal(this string str)
{
return decimal.Parse(str);
}
正如这个方法所建议的那样,它让我可以对项目中的不同变量进行 .ToDecimal,这是一种提高编码速度的方法
现在这是我的问题: 每当 decimal.parse(str) 的解析时;失败,IDE 将我引导至方法 ToDecimal...
不是调用该方法的实际行......这让我在一个项目上停留了一天以找出真正的异常...... 所以我的问题是: 有没有办法在解决方案中找到实际导致异常的行?即调用异常方法的行...
提醒你们,我在我的解决方案中调用了相同的方法 (ToDecimal()) 超过 1k 次...所以我试图弄清楚这 1k 次中的哪一次是导致的例外... 谢谢!
尝试使用此代码
static public decimal ToDecimal(this string str){
decimal dec;
if (decimal.TryParse(str, out dec))
{
return dec;
}
else
{
MessageBox.Show(str);
return 0.0;
}
}
每当解析抛出异常时,if 语句将失败,else 部分将给出导致异常的字符串。
你也可以在else语句中附加一个断点。
添加 try/catch 并查看调用堆栈很难吗?