简单命令行程序抛出异常



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

public static void main(String [] st) {
    System.out.println("nn 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);

但是会抛出Exception。

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

参见有关命令行参数和数组的教程。

与C和其他一些语言的一个特别的区别是程序名称本身不是参数之一,所以当C main函数总是至少有一个参数时,Java main没有。

我假设它是在抱怨你有一个索引超出界限的异常,这意味着你试图访问索引0的字符串,而没有这样的字符串。

有两种方法可以解决这个问题,一种是仔细查看异常(假设您知道它的含义),另一种是在调试器中逐步执行代码,这将使问题更清楚。

相关内容

最新更新