1
나는 내 자신의 예외를 만들고 클래스를 테스트했습니다. try/catch 블록과 함께 사용하려고하면 "null"이 출력되고 그 이유는 알지 못합니다. 심지어 메시지를 생성자의 매개 변수로 인쇄 할 때 PersonException()
.사용자 지정 예외는 try/catch 블록에서 호출 할 때 null을 인쇄합니다.
public static void main(String[] args) {
try {
Person pers1= addPerson("BOBfffffffffffffffffffffffff", 666);
System.out.println(pers1.toString());
} catch (PersonException e) {
System.out.println(e.getMessage());
}
}
private static Person addPerson(String name, int age) {
Person p= null;
p= new Person(name,age);
if(name.length()>20){
throw new PersonException("ERROR!! name too long", p);
}/*if(age<1 || age>110){
throw new PersonException("ERROR!!!! invalid age", p);
}*/
return p;
}
클래스 PersonException
public class PersonException extends IllegalArgumentException {
/**
*
*/
private static final long serialVersionUID = 1L;
private String message;
private Object object;
public PersonException(String message, Object object) {
super(message);
this.object = object;
}
public Object getObject() {return object;}
public void setObject(Object object) {this.object = object;}
public String getMessage() {return message;}
public void setMessage(String message) {this.message = message;}
}
클래스 사람 출력 난 당신이 슈퍼에 메시지를 전달하는 PersonException 생성자에
null
나는 자바라는 것을 알고 있지만 이름을 설정하는 방법과 당신이 그들을 얻는 방법은 틀릴 수도있다. SET (생성자 또는 기타) this.name = name; GET : return name; 예외 메시지 같은 ... 나는 당신이 당신의 자신의 규칙을 따라야한다고 생각하고 게터를 위해 좋아하세요 : 반환 this.name을; –
흠, 명명 프로세스가 ........와 관련이 없다고 생각합니다. –