Java训练六

文章介绍了Java编程中的异常处理,包括处理除数为0的情况、验证年龄格式、在循环中抛出并处理异常,以及计算最大公约数时处理负整数输入。
摘要由CSDN通过智能技术生成

目录

一、除数不能为0

二、校验年龄格式

 三、终端循环

四、 计算最大公约数


一、除数不能为0

使用静态变量、静态方法以及throws关键字,实现当两个数相除且除数为0时,程序会捕获并处理抛出的ArithmeticException异常(算术异常),运行结果如下:

小学生都笑哭了:除数不能是0!!!

package haha;
public class Captor{
	public static double chu(double a,double b) throws ArithmeticException{
		if(b==0) {
			throw new ArithmeticException("小学生都笑哭了:除数不能是0!!!");
		}
		return a/b;
	}
	public static void main(String[] args) {
		try {
			double m=3;
			double n=0;
			double k=chu(m,n);
			System.out.println(k);
		}catch(ArithmeticException e) {
			System.out.println(e);
		}
	}
}

二、校验年龄格式

编写一个信息录入程序,获取用户输入的姓名和年龄。如果用户输入的年龄不是正确的年龄数字(如0.5),则抛出异常并让用户重新输入;如果年龄正确,则打印用户输入信息。

//自定义异常MyException
package haha;

public class MyException extends Exception{          //创建自定义异常类
	public MyException(String ErrorMessage) {
		super(ErrorMessage);
	}
}

//校验年龄格式

package haha;
import java.util.Scanner;
public class Captor{
	static void que() throws MyException{
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入用户的姓名和年龄(用空格隔开)");
		String name=sc.next();
		double age=sc.nextDouble();
		if(age>(int) age) {
			throw new MyException("年龄的输入格式错误!请重新输入!");
		}
		System.out.print("姓名:"+name+"\n"+"年龄:"+(int) age);
		sc.close();
	}
	public static void main(String[] args) {
		try {
			que();
		}catch(MyException e) {
			System.out.println(e);
		}
	}
}

三、终端循环

编写使用for循环在控制台上输出0~9的代码。代码要实现以下两个功能:当循环变量的值为2时,抛出异常,循环中断;当循环变量的值为2时,虽然会抛出异常,但是循环不会中断。

中断代码:

//自定义异常MyException
package haha;

public class MyException extends Exception{          //创建自定义异常类
	public MyException(String ErrorMessage) {
		super(ErrorMessage);
	}
}


//中断代码
package haha;
public class Captor{
	static void que() throws MyException{
		for(int i=0;i<10;i++) {
			if(i==2) {
				throw new MyException("出现异常,循环中断!");
			}
			System.out.println(i);
		}
	}
	public static void main(String[] args) {
		try {
			que();
		}catch(MyException e) {
			System.out.println(e);
		}
	}
}

不中断代码:

//自定义异常MyException
package haha;

public class MyException extends Exception{          //创建自定义异常类
	public MyException(String ErrorMessage) {
		super(ErrorMessage);
	}
}


//不中断代码
package haha;
public class Captor{
	static void que() throws MyException{
		for(int i=0;i<10;i++) {
			System.out.println(i);
			if(i==2) {
				throw new MyException("出现异常!");
			}
		}
	}
	public static void main(String[] args) {
		try {
			que();
		}catch(MyException e) {
			System.out.println(e);
		}
		for(int i=3;i<10;i++) {
			System.out.println(i);
		}
	}
}

四、 计算最大公约数

创建Computer类,该类中有一个计算两个数最大公约数的方法,如果向该方法传递负整数,该方法就会抛出自定义异常。

package haha;
import java.util.Scanner;
public class computer{
	public static int que(int a,int b) throws MyException{
		if(a<0||b<0) {
			throw new MyException("不能传递负整数!");
		}
		if(a>=b) {
			int c;
			while(a%b!=0) {
				c=a%b;
				a=b;
				b=c;
			}
			return b;
		}else {
			int c;
			while(b%a!=0) {
				c=b%a;
				b=a;
				a=c;
			}
			return a;
		}
	}
	public static void main(String[] args) {
		try {
			Scanner sc=new Scanner(System.in);
		    System.out.println("请输入两个整数(用空格隔开):");
		    int m=sc.nextInt();
		    int n=sc.nextInt();
		    int k=que(m,n);
		    System.out.println(m+"和"+n+"的最大公约数是"+k);
		    sc.close();
		}catch(MyException e) {
			System.out.println(e);
		}
	}
}

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

天下弈星~

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

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

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

打赏作者

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

抵扣说明:

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

余额充值