day09自定义异常类的写法

自定义异常类:首先每个异常都是一个实实在在的类。可以继承总类。

1、通过继承Exception实现自定义异常

2、通过继承RuntimeException实现自定义运行时异常
3、自定义的异常同样可以进行捕获处理

4、自定义异常亦可进行在方法上throws出去或在方法体中throw出去


当所有的异常类都满足不了自己的要求时,我们就需要自己定义异常类。自定义异常类可以继承上面所说的两个异常类。在自定义异常类中可以书写关于自己所需求的构造方法。在某些需要改异常抛出的实体类中可以throw抛出这个异常。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
重构后的MyDate代码如下: ```java public class MyDate { private int year; private int month; private int day; public MyDate(int year, int month, int day) throws InvalidDateException { setYear(year); setMonth(month); setDay(day); } public int getYear() { return year; } public void setYear(int year) throws InvalidDateException { if (year < 0) { throw new InvalidDateException("年份不能为负数"); } this.year = year; } public int getMonth() { return month; } public void setMonth(int month) throws InvalidDateException { if (month < 1 || month > 12) { throw new InvalidDateException("月份必须在1-12之间"); } this.month = month; } public int getDay() { return day; } public void setDay(int day) throws InvalidDateException { if (day < 1 || day > 31) { throw new InvalidDateException("日期必须在1-31之间"); } this.day = day; } @Override public String toString() { return "MyDate{" + "year=" + year + ", month=" + month + ", day=" + day + '}'; } } ``` 在上面的代码中,我们定义了一个名为InvalidDateException的自定义异常,并用它替换了原来的Exception。我们还在setYear、setMonth和setDay方法中添加了异常抛出,以确保日期的有效性。 Demo代码如下: ```java public class Demo { public static void main(String[] args) { try { MyDate date = new MyDate(-2021, 13, 32); System.out.println(date); } catch (InvalidDateException e) { System.out.println(e.getMessage()); } } } ``` 在上面的代码中,我们使用MyDate创建了一个无效日期对象,并在try-catch块中捕获了InvalidDateException异常,以确保程序正常运行。如果日期无效,将打印异常信息。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值