| Semester_Vaadin |
|---|
| 01_StartProject |
| 02_Component |
| 03_Layout |
| 04_Basiklasse |
| 05_Serviceklasse |
| 06_GridSimple |
| 07_Event |
| 08_Exception |
| 09_Grid_Manuell |
| 10_Delete |
| 11_Validation |
| 12_Insert |

public class UrlaubException extends RuntimeException {
public UrlaubException(String message) {
super(message);
}
}
Als RuntimeException, da auch Vaadin intern mit RuntimeException arbeitet.
RuntimeException ist eine Basisklasse für viele Ausnahmen in Java. Sie gehört zur Gruppe der unchecked Exceptions -> d. h. man muss sie nicht explizit mit try-catch behandeln oder in der Methodensignatur mit throws deklarieren.
Tritt meist auf, wenn im Programm etwas logisch Unerwartetes passiert, das man nicht vernünftig abfangen kann (z. B. ein Programmierfehler).
Beispiele: - NullPointerException: Zugriff auf null - ArrayIndexOutOfBoundsException: Array-Zugriff außerhalb des Bereichs - IllegalArgumentException: Methode bekommt ungültigen Parameter - IllegalStateException: Objektzustand erlaubt die Operation nicht - ArithmeticException: Division durch 0
public class UrlaubListe1 extends VerticalLayout {
private Button buttonRemoveShopping;
private Button buttonRemoveNix;
Die Komponenten werden als Eigenschaft definiert.
private void init() {
buttonRemoveShopping = new Button("Lösche alle shopping Urlaube", buttonClickEvent -> removeShopping());
buttonRemoveNix = new Button("Lösche alle NIX Urlaube", buttonClickEvent -> removeNix());
add(new HorizontalLayout(buttonRemoveAll, buttonAdd10, buttonRemoveShopping, buttonRemoveNix), grid);
}
Die beiden Buttons werden instanziert und dem Layout hinzugefügt.
public void removeAll(String urlaubArt) throws UrlaubException {
Urlaub u;
Iterator<Urlaub> it;
int anz;
anz = 0;
if (urlaubArt == null)
throw new UrlaubException("Fehler: keine Urlaubsart angegeben!");
it = data.iterator();
while (it.hasNext()) {
u = it.next();
if (u.getUrlaubArt().equals(urlaubArt)) {
it.remove();
anz++;
}
}
if (anz == 0)
throw new UrlaubException("Fehler: keinen Urlaub mit der Art " + urlaubArt + " gefunden!");
}
Hier wird die Collection verändert und im Fehlerfall eine Exception geworfen!
private void removeNix() {
try {
urlaubService.removeAll("Nix");
reload();
}
catch (UrlaubException e) {
Notification.show(e.getMessage());
}
catch (Exception e) {
Notification.show(e.getMessage());
}
}
private void removeShopping() {
try {
urlaubService.removeAll("Shopping");
reload();
}
catch (UrlaubException e) {
Notification.show(e.getMessage());
}
catch (Exception e) {
Notification.show(e.getMessage());
}
}
Ein einfacher Methodenaufruf der Service Klasse. Auf das Exceptionhandling nicht vergessen. Zur Sicherheit auch die “Exception” abfangen.
