07_异常处理————随堂练习

て烟熏妆下的殇ゞ 提交于 2019-12-18 20:51:30

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);
	}

}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!