java异常处理的练习

//练习一
package zhihua1;

public class ReturnExceptionDemo {
    public static void methodA() throws Exception {
        try {
            System.out.println("进入方法A");
            throw new Exception("制造异常");//手动抛出异常
        }finally {
        System.out.println("用A方法的finally");
        }
    }
    public static int methodB(){
           try {
            System.out.println("进入方法B");
            return 1;
           }finally {
            System.out.println("用B方法的finally");
            return 2;
           }
    }
    public static void main(String[] args) {
        try {
            methodA();
        } catch (Exception e) {
            System.out.println(e.getMessage());
        }
        int i = methodB();
        System.out.println(i);
        
    }

}

//练习二
package zhihua1;
/*
 * 编写应用程序,接收命令行的两个参数,要求不能输入负数,计算两数相除。
 * 对数据类型不一致(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("a").
 * 
 */
public class EcmDef {
     public static void main(String[] args) {
         
        try {
            int i = Integer.parseInt(args[0]);//被除数
            int j = Integer.parseInt(args[1]);//除数
            ecm(i,j);
        } catch (NumberFormatException e) {
            System.out.println("输入的数据类型不一致");
        } catch(ArrayIndexOutOfBoundsException e) {
            System.out.println("缺少命令行参数");
        }catch(ArithmeticException e) {
            System.out.println("分母为零了");
        }catch (EcDef e) {
            System.out.println(e.getMessage());
        }
    }
     public static void ecm(int i,int j) throws EcDef {
         if(i < 0 || j < 0) {
             throw new EcDef("你输入的数值存在负数!");//手动抛出异常
         }
         System.out.println(i / j);
     }
}
//自定义异常类
class EcDef extends Exception{
    static final long serialVersionUID = -338751699329948L;
    
    public EcDef() {
        super();
    }
    public EcDef(String msg) {
        super(msg);
    }

}

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值