【项目六】用户信息与自定义异常

题目描述

  • 编写程序,输入并显示一批学生信息。
  • 学生信息包括:
    • 学号(整型)
    • 姓名(字符串类型)
    • 所在系编号(取值为1-5的整数)
  • 要求:
    • 用户输入的数据不正确,程序引发异常。(可自定义异常)

核心思想

  • 自定义异常类的编写练习

代码实现

  • MyException.java (自定义异常类)
public class MyException extends Exception {

	public final static String ID_EXCEPTION_MESSAGE = "学号不合法";
	public final static String NAME_EXCEPTION_MESSAGE = "姓名不合法";
	public final static String PART_NO_EXCEPTION_MESSAGE = "学号不合法";
	
	private static final long serialVersionUID = 4233025264161097260L;
	
	public MyException() {
		// TODO Auto-generated constructor stub
		System.err.println("异常错误!");
	}
	public MyException(String msg) {
		System.err.println(msg);
	}
	
}
  • Student.java 测试类
import java.util.Scanner;

public class Student {
	@SuppressWarnings("resource")
	public static void main(String[] args) {
		int id = 0;
		String name = null;
		int partNo = 0;
		Scanner scanner = new Scanner(System.in);
		System.out.println("请输入学号(整形):");
		try {
			id = scanner.nextInt();
		}catch(Exception e) {
			new MyException(MyException.ID_EXCEPTION_MESSAGE);
			return;
		}
		System.out.println("请输入姓名(字符串):");
		try {
			name = scanner.next();
		}catch(Exception e) {
			new MyException(MyException.NAME_EXCEPTION_MESSAGE);
			return;
		}
		System.out.println("请输入系编号(1-5位整数):");
		try {
			partNo = scanner.nextInt();
			if (partNo < 0 ||  partNo >= 100000) {
				new MyException(MyException.PART_NO_EXCEPTION_MESSAGE);
				return;
			}
		}catch(Exception e) {
			new MyException(MyException.PART_NO_EXCEPTION_MESSAGE);
			return;
		}
		System.out.println("学号:"+id+"\t姓名:"+name+"\t系编号:"+partNo);
	}
}

运行结果展示
  • 学号不合法情况
    在这里插入图片描述
  • 姓名不合法情况
    • 所有的输入均为字符串,所以这里不会报错,但是后续可以采用正则表达式进行匹配。
  • 系编号不合法情况
    在这里插入图片描述
  • 完全正确结果
    在这里插入图片描述

本节完!

更多信息交流请加QQ:1406073270
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值