Я прочитал, что можно создать конструктор, который проверяет правильность ввода или нет, и я попытался сделать это с IllegalArgumentException.Мой код работает нормально, пока я не создаю объект, не имеет значения, верен ли ввод или нет, компилятор выдаст ошибку.Это мой код:
public class Knoten{
private String typ;
public Knoten(String typ) throws Exception{
try{
if (typ.equals ("BASE")||typ.equals ("WORD")||typ.equals ("ROOT")||typ.equals ("AFFIX")){
this.typ=typ;
}}catch(IllegalArgumentException ex){
System.out.println ("invalid typ");
}}
public String getTyp(){
return typ;
}
public String toString(){
return "typ: "+getTyp();
}
public static void main (String args[]){
Knoten Knot1= new Knoten("haha");//throws error
Knoten Knot2= new Knoten("BASE");//throws error
}}
Я пытался сделать это, получая тот же результат:
public class Knoten{
private String typ;
public Knoten(String typ) throws Exception{
if (typ.equals ("BASE")||typ.equals ("WORD")||typ.equals ("ROOT")||typ.equals ("AFFIX")){
this.type=type;
}else{
throw new IllegalArgumentException("invalid type");
}
}
public String getTyp(){
return typ;
}
public String toString(){
return "typ: "+getTyp();
}
public static void main (String args[]){
Knoten Knot1= new Knoten("haha");//throws error
Knoten Knot2= new Knoten("BASE");//throws error
}
}
Так что мой вопрос, должен ли я обрабатывать исключение каждый раз, когда я создаюобъект этого класса или, если есть более хороший способ сделать это.