while-Schleife mit exception-handling

Dies ist mein erstes mal mit exception-handling, so sanft sein. Ich habe eine einfache blob-Klasse nimmt eine ID, die ID muss zwischen 30 und 50, oder sonst eine exception geworfen wird.

public class Blob {
int id;

public Blob() {

}

public Blob(int id) throws Exception {
    this.id = id;
    if (id < 30 || id > 50)
        throw new Exception ("id = " +id+ ", must be between 30 and 50 inclusive");
}
}

Sollte es den Benutzer auffordern, geben Sie eine id ein, und werfen die Ausnahme, wenn es nicht zwischen 30 und 50, und sollten fortgesetzt werden, bis der Benutzer eine gültige Eingabe und dann einfach zeigt die id-Nummer.

public class BlobCreator {

public static void main(String[] args) {
    int id;
    Scanner scan = new Scanner(System.in);
    System.out.println("Enter ID number: ");
    id = scan.nextInt();

    do {
        try {
            Blob b = new Blob(id);
        }

        catch (Exception e) {
            System.out.println(e);
        }
        System.out.println("Enter a different ID: ");
        id = scan.nextInt();
    }
    while(true);
    }   
System.out.println("Blob ID: " +id);
}

Ich denke, ich bin mit dem werfen und fangen richtig, aber meine Schleife funktioniert nicht richtig, so dass ich denke, dass soll eine einfache Lösung, aber ich kann es nicht erhalten, genau das richtige. Auch ist die Verwendung einer while-Schleife, wie ich den besten Weg für diese situation, oder gibt es einen besseren Weg, um eine Schleife durch werfen und fangen?

Vielen Dank für jegliche Hilfe

InformationsquelleAutor user2745043 | 2013-09-16
Schreibe einen Kommentar