在实验三中曾经实现过日期类 MyDate ,它包含一个含参数的构造方法 MyDate ( int year , int month , int day )、以及三个相应的设置方法 setXXX ( int arg )。 现编写一个自定义的异常 InvalidDateException 。当构造方法 或设置方法接受的参数不符合实际要求时,抛出一个这个异常的实 例。 2在 main 方法中分别包含以下代码,捕获并打印异常信息3 MyDate d1= new MyDate (-1,13,32); 4 MyDate d2= new MyDate ();d2.setDay(100);写出这个实验出现的十五个问题以及解决办法
时间: 2023-06-26 09:06:45 浏览: 126
问题1:如何定义自定义异常类InvalidDateException?
解决办法:定义一个继承自Exception的类InvalidDateException。
问题2:如何在MyDate类中抛出InvalidDateException异常?
解决办法:在构造方法和设置方法中,当接收到的参数不符合实际要求时,抛出一个InvalidDateException异常的实例。
问题3:如何在main方法中捕获并打印异常信息?
解决办法:使用try-catch语句,在try块中调用MyDate类的构造方法和设置方法,当捕获到InvalidDateException异常时,在catch块中打印异常信息。
问题4:如何判断年份是否合法?
解决办法:判断年份是否大于0,小于当前年份的后两位数字加上1900。
问题5:如何判断月份是否合法?
解决办法:判断月份是否在1~12之间。
问题6:如何判断日期是否合法?
解决办法:根据月份和年份来判断日期是否合法,如判断闰年、平年、大月、小月等。
问题7:如何判断是否是闰年?
解决办法:判断年份是否能被4整除,但不能被100整除,或者能被400整除。
问题8:如何判断平年的2月份日期是否合法?
解决办法:判断日期是否在1~28之间。
问题9:如何判断闰年的2月份日期是否合法?
解决办法:判断日期是否在1~29之间。
问题10:如何判断大月份日期是否合法?
解决办法:判断日期是否在1~31之间。
问题11:如何判断小月份日期是否合法?
解决办法:判断日期是否在1~30之间。
问题12:如何判断设置的日期是否合法?
解决办法:在设置方法中,先判断传入的参数是否合法,如果不合法则抛出InvalidDateException异常;否则再进行设置。
问题13:如何在构造方法中判断传入的参数是否合法?
解决办法:在构造方法中,先调用设置方法进行参数合法性判断,如果不合法则抛出InvalidDateException异常;否则再进行初始化。
问题14:如何处理没有传入参数的情况?
解决办法:在构造方法中,如果没有传入参数,则调用默认的设置方法进行初始化。
问题15:如何处理设置非法日期的情况?
解决办法:在设置方法中,如果接收到的参数不符合实际要求,则抛出InvalidDateException异常。
阅读全文