异常处理练习中对args数组赋值的错误
(自定义异常类略)
package ExceptionExer;
import java.util.Scanner;
/*
* 编写应用程序EcmDef.java,接收命令行的两个参数,要求不能输入负数,计算两数相除。
对 数 据 类 型 不 一 致 (NumberFormatException) 、 缺 少 命 令 行 参 数(ArrayIndexOutOfBoundsException)、
除0(ArithmeticException)及输入负数(EcDef 自定义的异常)进行异常处理。
提示:
(1)在主类(EcmDef)中定义异常方法(ecm)完成两数相除功能。
(2)在main()方法中使用异常处理语句进行异常处理。
(3)在程序中,自定义对应输入负数的异常类(EcDef)。
(4)运行时接受参数 java EcmDef 20 10 //args[0]=“20” args[1]=“10”
(5)Interger类的static方法parseInt(String s)将s转换成对应的int值。
如:int a=Interger.parseInt(“314”); //a=314;
*/
public class EcmDef {
public static void main(String[] args) {
// Scanner sc = new Scanner(System.in);
// System.out.println("请输入第一个数字字符串::");
// args[0] = sc.next();
// System.out.println("请输入第二个数字字符串::");
// args[1] = sc.next();
args[0] = "1";
args[1] = "2";
try {
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int result = ecm(a, b);
System.out.println(result);
}catch(NumberFormatException e) {
System.out.println("数 据 类 型 不 一 致");
}catch(ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
}catch(ArithmeticException e) {
System.out.println("除0");
}catch(EcDef e) {
System.out.println(e.getMessage());
}
}
public static int ecm(int a,int b) throws EcDef{
if(a > 0&& b > 0) {
return a/b;
}
throw new EcDef("要输入正数!!!");
}
}
在此次练习中相对args数组元素进行赋值,发现并不能直接赋值,后来发现只有通过eclipse的该处赋值,遗忘了该知识点。