Wenn ein falscher Wert eingegeben wird, soll das Programm nicht den printStackTrace ausgeben, sondern zB: "Farbe nicht gefunden".
Funktioniert so nicht !
Funktioniert so nicht !
Java:
public class EnumSwitchExample
{
private enum Farbe { ROT, GRUEN, BLAU, GELB, rot, gruen, blau, gelb }
public static void main(String... args)
{
// String input = args[0];
// oder:
String input = "";
try
{ input = javax.swing.JOptionPane.showInputDialog("Farbe eigeben: "); }
catch (EnumConstantNotPresentException e) { System.out.println("Der Wert kann nicht verifiziert werden"); }
Farbe farbe = Farbe.valueOf(input);
switch (farbe)
{
case ROT, rot -> System.out.println("Farbe ist rot");
case GRUEN, gruen -> System.out.println("Farbe ist grün");
case BLAU, blau -> System.out.println("Farbe ist blau");
case GELB, gelb -> System.out.println("Farbe ist gelb");
// default -> throw new IllegalArgumentException("Farbe nicht gefunden !!!");
// default -> throw new EnumConstantNotPresentException(???);
default -> colorNotFound();
}
}
public static void colorNotFound()
{
try { javax.swing.JOptionPane.showConfirmDialog(null, null, "Farbe nicht gefunden !!!", 2); }
catch (IllegalArgumentException e) { System.out.println("Error !!!"); }
// catch (EnumConstantNotPresentException e) { System.out.println("Error !!!"); }
}
}