实验--异常处理

题目:
在新冠肺炎疫情防控常态化形势下,核酸检测为疫情应对与处置发挥了重要的技术支撑作用,人们外出前经常需要先进行核酸检测。现为检测机构设计一个处理被检人员信息的管理系统,请定义一个类存储被检人员信息,要求:
(1)分别定义身份证号非法异常类、年龄非法异常类和新冠肺炎病毒阳性异常类;
(2)需要保存的隐私信息有身份证号、姓名、年龄、检测结果;
(3)定义构造方法初始化对象属性;
(4)提供属性访问方法;其中身份证号属性值的设置方法定义时,如果身份证号的前17位出现非数字,应抛出身份证号非法异常;其中年龄属性值的设置方法定义时,如果年龄不在1~150范围内,应抛出年龄非法异常;
(5)定义一个诊断方法,用于输出每个人的信息。当某人的检测结果为“阳性”时,应抛出新冠肺炎病毒阳性异常,并输出“隔离治疗”;
(6)分别用下列数据测试被检人员信息类,合理处理可能出现的异常,并输出“新冠肺炎检测管理信息系统V1.0”:
53010219200508011Z 张三 18 阴性
1X0701199310302288 李四 60 阴性
520302198912097945 王五 151 阴性
42092219731015461X 赵六 20 阳性
注:如果认为有必要,可以增加其他的成员方法或构造方法来辅助完成任务。何时触发异常、如何处理异常可自行决定。
下面展示一些 内联代码片

思路,自定义定义三个异常类
1.ageException extends Exception
2.idException extends Exception
3.resException extends Exception
测试类书写,三个异常类可定义在测试类内部
下面是实验代码  供参考
有误之处,欢迎大佬评论或私信指正
1.ageException extends Exception
public class ageException extends Exception{
    public ageException(String s) {
        super(s);
    }

    public ageException() {
        super();
    }
}

2.idException extends Exception
public class idException extends Exception{
    public idException(String s) {
        super(s);
    }

    public idException() {
        super();
    }
}
3.resException extends Exception
public class resException extends Exception{
    public resException(String s) {
        super(s);
    }

    public resException() {
        super();
    }
}

//身份证号异常方法
    public void id(String s) throws idException {
        for(int i=0;i<17;i++){
            char c = s.charAt(i);
            if(!jud(c)){
                throw new idException("id非法异常");
            }
        }
    }
    public boolean jud(char c){
        char arr[] = {'0','1','2','3','4','5','6','7','8','9'};
        for (int i = 0; i < arr.length; i++) {
            if(c==arr[i])return true;
        }
        return false;
    }
//年龄异常方法
    public void age(int n) throws ageException{
        if(n<1||n>150){
            throw new ageException("年龄非法异常");
        }
    }

    //定义诊断方法
    public void res(String result) throws resException{
        String s = "阳性";
        if(result.equals(s)){
            throw new resException("隔离治疗");
        }
    }

测试类:

public class Main {
    private String id;
    private String name;
    private int age;
    private String result;
    //static int num=0;

    //身份证号异常方法
    public void id(String s) throws idException {
        for(int i=0;i<17;i++){
            char c = s.charAt(i);
            if(!jud(c)){
                throw new idException("id非法异常");
            }
        }
    }
    public boolean jud(char c){
        char arr[] = {'0','1','2','3','4','5','6','7','8','9'};
        for (int i = 0; i < arr.length; i++) {
            if(c==arr[i])return true;
        }
        return false;
    }

    //年龄异常方法
    public void age(int n) throws ageException{
        if(n<1||n>150){
            throw new ageException("年龄非法异常");
        }
    }

    //定义诊断方法
    public void res(String result) throws resException{
        String s = "阳性";
        if(result.equals(s)){
            throw new resException("隔离治疗");
        }
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getResult() {
        return result;
    }

    public void setResult(String result) {
        this.result = result;
    }

    public test2() {
    }

    public test2(String id, String name, int age, String result) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.result = result;
        try{
            id(id);
            age(age);
            res(result);
        }catch (idException e){
            e.printStackTrace();
        }catch (ageException e){
            e.printStackTrace();
        }catch (resException e){
            e.printStackTrace();
        }
    }

//53010219200508011Z  张三  18   阴性
//1X0701199310302288  李四  60   阴性
//520302198912097945  王五  151  阴性
//42092219731015461X  赵六  20   阳性
    public static void main(String[] args) {
        new test2("53010219200508011Z","张三",18,"阴性");
        new test2("1X0701199310302288","李四",60,"阴性");
        new test2("520302198912097945","王五",151,"阴性");
        //new test2("42092219731015461X","赵六",20,"阳性");
        System.out.println("--新冠肺炎检测管理信息系统V1.0");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

多喝热水,重启试试

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

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

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

打赏作者

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

抵扣说明:

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

余额充值