7-7异常处理----练习

该博客展示了Java异常处理的基本使用,包括try-catch-finally块的执行顺序,并给出了一个自定义异常类EcDef的示例。在EcmDef.java程序中,通过异常处理确保了命令行参数为正数并进行两数相除操作,同时处理了数据类型不匹配、参数缺失、除0和输入负数等异常情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基本使用

代码:

package exer1;
 
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();
 }
}

输出:

进入方法A
用A方法的finally
制造异常
进入方法B
调用B方法的finally

二、EcmDef.java

1.编写应用程序EcmDef.java,接收命令行的两个参数,要求不能输入负数,计算两数相除。
对 数 据 类 型 不 一 致(NumberFormatException) 、 缺 少 命 令 行 参 数(ArrayIndexOutOfBoundsException、 除0(ArithmeticException)及输入负数(EcDef 自定义的异常)进行异常处理。 
2.提示:
(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;

EcDef:

package exer1;
 
//自定义异常类
public class EcDef extends Exception {
 
 static final long serialVersionUID = -1654653138486948L;
 
 public EcDef() {
 }
 
 public EcDef(String msg) {
  super(msg);
 }
}

EcmDef:

package exer1;
 
public class EcmDef {
 public static void main(String[] args) {
  try {
   int i = Integer.parseInt(args[0]);
   int j = Integer.parseInt(args[1]);
 
   int result = ecm(i, j);
 
   System.out.println(result);
  } catch (NumberFormatException e) {
   System.out.println("数据类型不一致");
  } catch (ArrayIndexOutOfBoundsException e) {
   System.out.println("缺少命令行参数");
  } catch (ArithmeticException e) {
   System.out.println("除0");
  } catch (EcDef e) {
   System.out.println(e.getMessage());
  }
 
 }
 
 public static int ecm(int i, int j) throws EcDef {
  if (i < 0 || j < 0) {
   throw new EcDef("分子或分母不能为负数!");
  }
  return i / j;
 }
}

在这里插入图片描述

输出:

分子或分母不能为负数!

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YY鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值