启动C#应用程序时出现致命错误

时间:2010-11-17 22:53:50

标签: c# .net visual-studio debugging visual-studio-2010

C#Visual Studio 2010 Express:

当我的应用程序启动时,甚至在显示我的GUI之前,我在对话框中收到以下错误:


致命问题:值不能为空。
参数名称:source


这似乎与应用程序中的某些用户设置有关。 我在StringCollection中从String更改了一个设置类型,但我不确定这是根本原因。 “来源”这个名字也不响铃。

问题是我无法破解应用程序来调试此错误。 单击“确定”后,应用程序将启动,但由于某种原因,设置全部为空。

感谢您的帮助
戴维

3 个答案:

答案 0 :(得分:4)

解决此问题的最佳方法是使用调试器找出异常的来源。为此,请尝试以下

禁用我的代码

  • 工具 - >选项 - >调试器
  • 取消选中“启用我的代码”

启用第一次机会除外

  • 调试 - >例外
  • 检查“共同语言运行时异常”的“投掷”

然后按F5开始调试您的应用程序。这应该可以让您非常了解错误发生的位置和原因。

答案 1 :(得分:0)

将设置设置为break on all exceptions,而不是仅显示未处理的设置。

执行将在抛出异常的位置停止,而不是在对话框中停止。

您不太可能处于代码中,但您可以查看堆栈跟踪以了解正在发生的事情。

答案 2 :(得分:0)

<强>解决

我替换了以下代码,它从属性加载我的内部 SrcPathList

*SrcPathList = new List(Properties.Settings.Default.SrcPathList.Cast()); // From StringCollection to List*

有了这个:

if (Properties.Settings.Default.SrcPathList != null)
{
  SrcPathList = new List(Properties.Settings.Default.SrcPathList.Cast()); // From StringCollection to List
}
else
{
  SrcPathList = new List();
}

这解决了因加载导致空值的空列表而引起的问题

谢谢大家的快速帮助!