如何找出导致NullReferenceException的原因

时间:2013-10-14 08:43:11

标签: c# debugging nullreferenceexception

我正在使用包含第三方DataGridView的c#编写.net程序。我成功了 - 我想要的数据,添加/删除列和行,对用户选择做出反应等等 - 到目前为止一切正常。现在我的问题来自于我打开标准的OpenFileDialog - 它按预期打开,我也可以选择文件。但当我关闭它(无论我是否使用Open或Cancel按钮)然后尝试在GridView中选择列和行时,我在System.Windows.Forms.dll中得到NullReferenceException。我不明白为什么打开和关闭标准对话框会导致这个问题。我阅读了以下问题并且答案但无法在那里发表评论 - 所以我不得不打开一个新问题:

What is a NullReferenceException and how do I fix it?

我想我明白NullReferenceException是什么,但如果你能解释我如何找出,哪个对象导致它会很好。那么我该如何调试这个问题呢?我甚至不知道我的代码是否有问题,或者它是否是第三方扩展中的错误。

非常感谢你!

编辑,14.10.2013:

我认为扔回去有效,但它指向了这一行(见箭头):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace MyProg
{
    static class Program
    {
        /// <summary>
        /// Der Haupteinstiegspunkt für die Anwendung.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
   --->     Application.Run(new MyProgMain());
        }
    }
}

不幸的是,这对我没有帮助 - 当调试器突出显示这一行时它意味着什么?

1 个答案:

答案 0 :(得分:2)

启用第一次机会异常:在Visual Studio IDE上按Esc + Ctrl + Alt + E并选中“公共语言运行时异常”的“抛出”复选框