public class except
{
public static int Sum(int n)
{
if(n<0)
throw new IllegalArgumentException("n应为正数");
int s=0;
for(int i=0;i<n;i++)s=s+i;
return s;
}
public static void main(String args[])
{
try
{
int n=Integer.parseInt(args[0]);
System.out.println("命令行应为:"+"java SumUp<number>");
}
catch(NumberFormatException e2)
{
System.out.println("参数<number>应为整数");
}
catch(IllegalArgumentException e3)
{
System.out.println("参数错误" + e3.toString());
}
finally
{
System.out.println("SumUp.java程序结束?");
}
}
}怎么回事呢?为什么我的运行结果只有SumUp.java程序结束??其他程序的命令行参数也都是例外??好像不是程序的问题啊.....郁闷中

解决方案 »

  1.   

    我想你的程序可能应该是这样(中文有问题自己改吧):public class except
    {
    public static int Sum(int n)
    {
    if(n<0)
    throw new IllegalArgumentException("n&Oacute;&brvbar;&Icirc;&ordf;&Otilde;&yacute;&Ecirc;&yacute;");
    int s=0;
    for(int i=0;i<n;i++)s=s+i;
    return s;
    }
    public static void main(String args[])
    {
    try
    {
    int n=Integer.parseInt(args[0]);
    System.out.println(Sum(n));  //这里调用sum方法
    }
    catch(NumberFormatException e2)
    {
    System.out.println("&sup2;&Icirc;&Ecirc;&yacute;<number>&Oacute;&brvbar;&Icirc;&ordf;&Otilde;&ucirc;&Ecirc;&yacute;");
    }
    catch(IllegalArgumentException e3)
    {
    System.out.println("&sup2;&Icirc;&Ecirc;&yacute;&acute;í&Icirc;ó" + e3.toString());
    }
    finally
    {
    System.out.println("SumUp.java&sup3;&Igrave;&ETH;ò&frac12;á&Ecirc;&oslash;?");
    }
    }
    }会有以下结果:
    1、java except 6
    结果为:
    15
    SumUp.java程序结束?2、java except -2
    结果为:
    参数错误java.lang.IllegalArgumentException: n应为正数
    SumUp.java程序结束?3、java except x
    结果为:
    参数<number>应为整数
    SumUp.java程序结束?4、java except
    结果为:
    SumUp.java程序结束?
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
            at except.main(except.java:15)问题比较多,主要三个:
    1、参数是指java except后面用空格分割的字符串,将会传入args[]字符串数组中
    int n=Integer.parseInt(args[0]);
    就是将第一个参数转为整数2、需要调用sum方法,否则程序没有意义3、String arg[]和String[] arg是一样的,参考数组的定义
      

  2.   

    String[] args 和 String args[] 是数组的两种表现形式而已
    而且你可以不用args用别的如a,b都是一样的