简单命令行程序抛出异常

时间:2011-12-07 16:07:49

标签: java

我知道这是一个简单的问题,但它会产生一些不寻常的问题。

public static void main(String [] st) {

    System.out.println("\n\n Arg: :"+st.length);
    for(int i=0;i<st.length;i++) {
        System.out.println("ARGUMENTS: "+st[i]);
    }
}

此程序仅打印“Arg :: 0”作为输出

我也试过

String s= st[0];
System.out.println("\n String: "+s);

但它会抛出异常。 所以请帮帮我。

3 个答案:

答案 0 :(得分:1)

如果您在启动时未向程序传递任何参数,则st将为空。因此,尝试引用数组中的第一项将抛出NullPointerException

答案 1 :(得分:1)

请参阅command line argsarrays上的教程。

与C和其他一些语言的一个特别区别是程序名本身不是参数之一,所以虽然C main函数总是至少有一个参数,但Java main会不

答案 2 :(得分:0)

我认为它抱怨你有一个索引超出范围的异常,这意味着当没有这样的字符串时你试图访问索引0的字符串。

你能解决这个问题的两种方法是仔细查看异常(假设你知道它意味着什么)或者在调试器中单步调试代码,这样可以使这一点更加清晰。