(1) 自定义两个异常类:非法姓名异常IllegaNameException和非法地址异常IllegalAddressException。 (2) 定义Student类包含name和address属性,和setName、setAddress方法,当姓名长度小于1或者大于5时抛出IllegaNameException,当地址中不含有“省”或者“市”关键字时抛出IllegalAddressException。 (3) 编写程序抛出这两种异常,在main方法中进行捕获并合理地处理。
时间: 2023-06-10 07:03:19 浏览: 52
好的,你的第一个问题是如何自定义两个异常类:非法姓名异常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类,并在其中对name和address属性进行判断抛出异常:
```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方法中抛出的异常,打印异常信息或进行其他相应的处理。
相关推荐
![java](https://img-home.csdnimg.cn/images/20210720083646.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)