1、判断程序的输出结果
public class ReturnExceptionDemo {
static void methodA() {
try {
System.out.println("进入方法A");
throw new RuntimeException("制造异常");
}
finally {
System.out.println("用A方法的finally");
}
}
static void methodB() {
try {
System.out.println("进入方法B");
return;
} finally {
System.out.println("调用B方法的finally");
}
}
public static void main(String[] args) {
try {
methodA();
} catch (Exception e) {
System.out.println(e.getMessage());
}
methodB();
}
}
2、编写应用程序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) {
String arg0 = args[0];
String arg1 = args[1];
int x =Integer.parseInt(arg0);
int y =Integer.parseInt(arg1);
ecm(x, y);
}
//ecm方法完成两数相除
public static void ecm(int a ,int b) {
//判断传入的两个参数是否有负数 有负数抛出自定义异常 无负数执行操作语句
if(a < 0 || b < 0) {
throw new EcDef("操作数不能为负");
}else {
int c = a/b;
System.out.println(c);
}
}
}
自定义异常类:
public class EcDef extends RuntimeException{
//自定义异常
/**
*
*/
private static final long serialVersionUID = 1L;
//无参构造
public EcDef() {
super();
}
//带参构造
public EcDef(String s) {
super(s);
}
}