定义一个Student类,要求如下: 属性:id、name; 方法:构造方法,set和get方法,其中setid(String id)若id长度大于10,则抛出LengthException,若id中含有字母字符,则抛出LetterException 。 编写自定义LengthException和LetterException异常类。 编写Student类。在setid方法体中抛出LengthException或LetterException异常类 编写类ExceptionTest3:
时间: 2024-03-06 20:48:04 浏览: 44
设计学生类Student,属性:编号(整型);姓名(字符串),成绩(整型)。
5星 · 资源好评率100%
好的,以下是符合要求的代码:
```java
// LengthException.java
public class LengthException extends Exception {
public LengthException(String message) {
super(message);
}
}
// LetterException.java
public class LetterException extends Exception {
public LetterException(String message) {
super(message);
}
}
// Student.java
public class Student {
private String id;
private String name;
public Student(String id, String name) throws LengthException, LetterException {
setId(id);
this.name = name;
}
public void setId(String id) throws LengthException, LetterException {
if (id.length() > 10) {
throw new LengthException("ID长度不能超过10");
}
if (id.matches(".*[a-zA-Z]+.*")) {
throw new LetterException("ID不能包含字母");
}
this.id = id;
}
public String getId() {
return id;
}
public String getName() {
return name;
}
}
// ExceptionTest3.java
public class ExceptionTest3 {
public static void main(String[] args) {
try {
Student s1 = new Student("12345678901", "Tom");
} catch (LengthException e) {
System.out.println(e.getMessage());
} catch (LetterException e) {
System.out.println(e.getMessage());
}
try {
Student s2 = new Student("123abc4567", "Jerry");
} catch (LengthException e) {
System.out.println(e.getMessage());
} catch (LetterException e) {
System.out.println(e.getMessage());
}
}
}
```
运行 ExceptionTest3 的 main 方法,将输出以下结果:
```
ID长度不能超过10
ID不能包含字母
```
阅读全文