Moin Kollegen
,
eine Frage zum Thema Exceptions.
Weshalb gehört eine "IllegalArgumentException" zu den unchecked Exceptions? Schon klar. Das ist eine Kindklasse von "RuntimeException" Aber:
Annahme: Ich übergebe einen String (z.B. Name, Adresse etc.) aus einer Usereingabe als Parameter an eine Methode, die überprüfen soll, ob der String
!=null ist.
*****************************************
public void setName(String name){
if(name == null){
throw new IllegalArgumentException("Name may not be null.");
}
if(name.trim().isEmpty()){
throw new IllegalArgumentException("Name may not be empty.");
}
this.name = name;
****************************************
Dann ist das doch eine typischer Fall für eine "IllegalArgumentException" ("Feld darf nicht leer sein").
Da dieser Fehler aber nicht aus der Programmlogik, sondern aufgrund einer Usereingabe kommt, müsste das doch aber eine klare "checked Exception" sein.
Ich werfe die Exception an den Aufrufer (Usereingabe) und behandle sie da mit einem try-catch.
Oder sehe ich da was falsch.
v.D. Oli
eine Frage zum Thema Exceptions.
Weshalb gehört eine "IllegalArgumentException" zu den unchecked Exceptions? Schon klar. Das ist eine Kindklasse von "RuntimeException" Aber:
Annahme: Ich übergebe einen String (z.B. Name, Adresse etc.) aus einer Usereingabe als Parameter an eine Methode, die überprüfen soll, ob der String
!=null ist.
*****************************************
public void setName(String name){
if(name == null){
throw new IllegalArgumentException("Name may not be null.");
}
if(name.trim().isEmpty()){
throw new IllegalArgumentException("Name may not be empty.");
}
this.name = name;
****************************************
Dann ist das doch eine typischer Fall für eine "IllegalArgumentException" ("Feld darf nicht leer sein").
Da dieser Fehler aber nicht aus der Programmlogik, sondern aufgrund einer Usereingabe kommt, müsste das doch aber eine klare "checked Exception" sein.
Ich werfe die Exception an den Aufrufer (Usereingabe) und behandle sie da mit einem try-catch.
Oder sehe ich da was falsch.
v.D. Oli