为什么会发生“IndexOutOfRangeException”

时间:2013-05-19 10:27:56

标签: c# winforms richtextbox

我正在关注如何允许我的程序使用Windows中的“打开方式”方法打开文件的this教程。但是,一旦程序加载,它就会以错误“IndexOutOfRangeException”崩溃。

我的代码如下。

public static void Main(string[] args)
    {
        if(args[0] != null)
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Basic_Word_Processor());
            Basic_Word_Processor.Instance.richTextBoxPrintCtrl1.LoadFile(@args.ToString());
        }
        else
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Basic_Word_Processor());
        }

导致此异常的原因是什么?

1 个答案:

答案 0 :(得分:5)

this:args[0]因为当args为null时,您正在尝试访问不存在的数组的第一个元素。

因此,要修复程序,您必须检查args是否为空:

if(args != null && args.Length > 0)
{
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Basic_Word_Processor());
            Basic_Word_Processor.Instance.richTextBoxPrintCtrl1.LoadFile(args[0].ToString());
}
else
{
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Basic_Word_Processor());
}