代码之家  ›  专栏  ›  技术社区  ›  Davy

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

  •  1
  • Davy  · 技术社区  · 15 年前

    C#Visual Studio 2010学习版:

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


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


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

    问题是我无法中断应用程序以调试此错误。 当我单击“确定”时,应用程序将启动,但由于某些原因,所有设置都为空。

    谢谢你的帮助
    戴维

    3 回复  |  直到 15 年前
        1
  •  5
  •   JaredPar    15 年前

    解决这个问题的最好方法是使用调试器找出异常的确切来源。为此,请尝试以下操作

    仅禁用我的代码

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

    启用首次机会例外

    • 调试->异常
    • 检查“抛出”的“公共语言运行时异常”

    然后按F5开始调试应用程序。这应该能让你很好地了解错误发生的位置和原因。

        2
  •  1
  •   Davy    15 年前

    解决了的 :

    我替换了下面的代码,它加载了我的内部 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();
    }

    这解决了加载空列表导致空值的问题

    谢谢你们的快速帮助!

        3
  •  0
  •   Bevan    15 年前

    打开设置为 break on all exceptions ,而不仅仅是未处理的。

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

    您不太可能处于代码的中间,但可以查看堆栈跟踪以了解发生了什么。