2017-10-11 7 views
-4

Ich habe eine gesteuerte Menü-Klasse mit Schalter und neben dem eine Klasse, diese Klasse löst eine Ausnahme, wenn eine falsche Eingabe eingegeben wird, wie kann ich nach der Ausnahme zurück und bitten Sie den Benutzer Daten einzugeben nochmal.Java-Klasse, Ausnahme, Benutzereingabe

Java-Klasse Diamant:

public class Diamond 
{ 

private int x; 

    public Diamond(int x) throws IllegalArgumentException 
    { 
     if ((x % 2) == 0) 
     { 
      System.out.println("\nx must be odd."); 
      throw new IllegalArgumentException("x must be odd."); 

     } 
     this.x = x; 

    } 
+0

Warum würden Sie eine Laufzeitausnahme bei ungültiger Eingabe auslösen? –

+0

Werfen Sie nicht die Ausnahme .... Drucken Sie einfach eine Nachricht an die Konsole: 'System.out.println (" Gelieferter Wert muss ungerade sein! ");'. – DevilsHnd

Antwort

0

Bitte this question regarding exceptions in general sowie this Java Tutorial sehen.

Ich nehme an, Sie haben einen Code, der Benutzereingaben akzeptiert und dann eine Instanz der Klasse Diamond erstellt.

Sie würden den Code, der die Diamond -Instanz erzeugt, in einen try-catch-Block schreiben.

So etwas wie folgt aus:

Diamond d = null; 
try{ 
    d = new Diamond(userInput); 
}catch(IllegalArgumentException e){ 
    //Handle the exception 
} 

Da jedoch diese Ausnahme aufgrund eines Eingabe Problem ausgelöst wird, eher als ein Programmierproblem ich auf die Idee zu lehnen neigen, dass Sie eine geprüfte Ausnahme hier verwendet werden soll.

Als allgemeine Regel pro den Java Tutorial:

Wenn ein Client von einer Ausnahme werden kann vernünftigerweise erwartet erholen, es ist eine geprüfte Ausnahme machen. Wenn ein Client nichts tun kann, um die Ausnahme wiederherzustellen, machen Sie eine unkontrollierte Ausnahme.