在实验三中曾经实现过日期类 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-25 09:08:28 浏览: 163
java代码-使用java构造日期类提供int compare(MyDate d)测试当前对象和参数对象的源代码
1. 参数类型错误:在调用 MyDate 构造方法或设置方法时传入错误的参数类型,如传入字符串类型而非整数类型。解决办法:确保传入的参数类型正确。
2. 参数数量错误:在调用 MyDate 构造方法或设置方法时传入的参数数量不正确,如只传入了两个参数而非三个。解决办法:确保传入的参数数量正确。
3. 参数范围错误:在调用 MyDate 构造方法或设置方法时传入的参数超出了其所允许的范围,如月份传入了 13。解决办法:在构造方法和设置方法内部添加判断,如果参数不符合要求,抛出 InvalidDateException 异常。
4. 构造方法内部逻辑错误:在 MyDate 构造方法内部出现逻辑错误,导致无法正确初始化 MyDate 对象。解决办法:仔细检查构造方法内部逻辑,确保正确初始化 MyDate 对象。
5. 设置方法未初始化对象:在调用 MyDate 的设置方法之前,未对 MyDate 对象进行初始化。解决办法:先调用 MyDate 构造方法初始化对象,再调用设置方法。
6. 不正确的异常处理:在捕获 InvalidDateException 异常时,处理方式不正确,导致程序无法正常运行。解决办法:在捕获异常时,使用 try-catch 块,并在 catch 块中正确处理异常。
7. 异常处理逻辑错误:在捕获 InvalidDateException 异常时,处理逻辑错误,导致程序无法正常运行。解决办法:仔细检查异常处理逻辑,确保正确处理异常。
8. 异常类型错误:在捕获异常时,错误地使用了其他类型的异常来捕获 InvalidDateException 异常。解决办法:使用正确的异常类型来捕获 InvalidDateException 异常。
9. 异常处理不完整:在捕获异常后,未对异常进行处理,导致程序无法正常运行。解决办法:在 catch 块中处理异常,确保程序能够正常运行。
10. 异常信息不明确:在捕获异常后,未将异常信息打印出来,导致无法查找异常原因。解决办法:在 catch 块中打印异常信息,方便查找异常原因。
11. 构造方法和设置方法重复:在 MyDate 类中,构造方法和设置方法的功能重复,导致代码冗余。解决办法:将重复的代码抽象成一个私有方法,供构造方法和设置方法共同调用。
12. 异常信息过于简单:在抛出 InvalidDateException 异常时,异常信息过于简单,无法准确描述异常原因。解决办法:在抛出异常时,添加详细的异常信息,方便查找异常原因。
13. 异常处理方式不一致:在处理异常时,不同的代码块使用了不同的异常处理方式,导致代码风格不统一。解决办法:使用相同的异常处理方式,在代码风格上保持一致。
14. 异常处理层次不够清晰:在处理异常时,异常处理层次不够清晰,导致代码难以维护。解决办法:在处理异常时,使用多个 catch 块,将不同类型的异常分开处理,保持代码层次清晰。
15. 异常处理过于笼统:在捕获异常时,处理方式过于笼统,无法准确描述异常原因。解决办法:在捕获异常时,使用具体的处理方式,准确描述异常原因。
阅读全文