自定义两个异常类非法姓名异常IllegaNameException和非法地址异常IllegalAddressException。

class IllegaNameException extends Exception//非法姓名异常
{
   public IllegaNameException(String message)
   {
       super(message);
   }
   public IllegaNameException()
   {
       super();
   }
}
class IllegalAddressException extends Exception//非法地址异常
{
    public IllegalAddressException(String message)
    {
        super(message);
    }
    public IllegalAddressException()
    {
        super();
    }
}
class Student
{
     String name;
     String address;

    public void setName(String name) throws IllegaNameException
    {
        this.name = name;
        int n=name.length();
        if(n<1||n>5)
        {
            throw new IllegaNameException("姓名长度不符合要求");
        }
    }

    public void setAddress(String address) throws  IllegalAddressException
    {
        this.address = address;
        int n=address.length();
        boolean flag=false;
        for(int i=0;i<n;i++)
        {
            if(address.charAt(i)=='省'||address.charAt(i)=='市')
            {
                flag=true;
            }
        }
        if(!flag)
        {
            throw new IllegalAddressException("地址长度不符合要求");
        }
    }
}
public class Test6_3_zxj {
//    (三)自定义异常的定义、拋出和捕获试验
//
//      (1)自定义两个异常类非法姓名异常IllegaNameException和非法地址异常IllegalAddressException。
//
//      (2)定义Student类包含Name和Address属性,和setName、setAddress方法,当姓名长度小于1或者大于5抛出IllegaNameExceptio,当地址中不含有”省”或者“市”关键字抛出IllegalAddressException。
//
//      (3)在main方法中进行捕获试验。
        public static void main(String args[]) throws IllegaNameException, IllegalAddressException {
            Student s=new Student();
            try {
                s.setName("i have 7 sons,they are my roomates");
            }
           catch(IllegaNameException e)
           {
               System.out.println("姓名输入错误");
           }
            try {
                s.setAddress("我们生活在瓦罗兰大陆德玛西亚区");
            }
            catch(IllegalAddressException e)
            {
                System.out.println("地址输入错误");
            }

        }
}

在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,你的第一个问题是如何自定义两个异常类非法姓名异常IllegaNameException非法地址异常IllegalAddressException。 可以参照以下代码实现自定义两个异常类: ```java // 非法姓名异常类 public class IllegaNameException extends Exception { public IllegaNameException(String message) { super(message); } } // 非法地址异常类 public class IllegalAddressException extends Exception { public IllegalAddressException(String message) { super(message); } } ``` 这两个异常类都继承自Exception类,可以使用自定义的错误信息打印异常信息。 接下来,定义Student类,并在其中对nameaddress属性进行判断抛出异常: ```java public class Student { private String name; private String address; public void setName(String name) throws IllegaNameException { if(name.length() < 1 || name.length() > 5){ throw new IllegaNameException("姓名长度应在1-5之间"); } this.name = name; } public void setAddress(String address) throws IllegalAddressException { if(!address.contains("省") && !address.contains("市")){ throw new IllegalAddressException("地址中应包含省或市关键字"); } this.address = address; } // 其他方法... } ``` 在setName和setAddress方法中进行判断,如果不符合条件,则抛出对应的异常。 最后,在main方法中进行异常捕获和处理: ```java public static void main(String[] args) { Student student = new Student(); try { student.setName("123456"); // 测试姓名过长 student.setAddress("北京"); // 测试地址中不包含省或市关键字 } catch (IllegaNameException | IllegalAddressException e) { e.printStackTrace(); } } ``` 在main方法中,使用try-catch语句捕获setName和setAddress方法中抛出的异常,打印异常信息或进行其他相应的处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值