2.定义一个Student类,要求如下: 属性:id、name; 方法:构造方法, set 和get 方法,其中setid(String id)若id长度大于10,则抛出LengthException,若id 中含有字母字符,则抛出LetterException。 编写自定义LengthException和LetterException异常类。 编写Student 类。在setid方法体中抛出LengthException或LetterException异常类↵ 编写类ExceptionTest3:
时间: 2024-03-06 08:49:05 浏览: 59
以下是定义好的Student类和自定义的LengthException和LetterException异常类,以及ExceptionTest3类的代码实现:
```java
// LengthException自定义异常类
class LengthException extends Exception {
public LengthException(String message) {
super(message);
}
}
// LetterException自定义异常类
class LetterException extends Exception {
public LetterException(String message) {
super(message);
}
}
// Student类
class Student {
private String id;
private String name;
public Student(String id, String name) {
this.id = id;
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) throws LengthException, LetterException {
if (id.length() > 10) {
throw new LengthException("ID长度不能超过10位!");
}
for (int i = 0; i < id.length(); i++) {
if (Character.isLetter(id.charAt(i))) {
throw new LetterException("ID中不能含有字母字符!");
}
}
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
// ExceptionTest3类
public class ExceptionTest3 {
public static void main(String[] args) {
Student student = new Student("1234567890", "Tom");
try {
student.setId("123456789012");
} catch (LengthException e) {
System.out.println(e.getMessage());
} catch (LetterException e) {
System.out.println(e.getMessage());
}
System.out.println("ID:" + student.getId());
System.out.println("姓名:" + student.getName());
}
}
```
在这段代码中,我们定义了一个Student类,其中包含id和name两个属性,以及构造方法和set/get方法。在set方法中,我们加入了异常处理机制,当id长度大于10或id中含有字母字符时,会抛出LengthException或LetterException异常类。同时,我们在ExceptionTest3类中对于set方法进行了测试,并输出结果。
阅读全文