0

Wenn Sie input.nextLine() als Teil Ihrer Exception-Catch aufrufen, ist es besser, sie in jeden catch-Block oder einfach in einen finally-Block zu platzieren Am Ende des Versuches. Was ist der Vor- oder Nachteil beider Ansätze?Java-Exception-Behandlung für Scanner-Eingabe: Löschen von ungültigen Daten mit nextLine (catch vs Finally)

Beispiel:

catch (InputMismatchException e) 
    { 
     input.nextLine(); 
     System.out.println("Cannot add to Database, please enter only integers"); 
    } 

    catch (Exception e) 
    { 
     input.nextLine(); 
     System.out.println("Impossible to add, please enter only letters from a-z"); 
    } 

Oder

catch (InputMismatchException e) 
    { 

     System.out.println("Cannot add to Database, please enter only integers"); 
    } 

    catch (Exception e) 
    { 

     System.out.println("Impossible to add, please enter only letters from a-z"); 
    } 

    finally 
    { 
     input.nextLine(); 
    } 

Was ist der Vorteil oder Nachteil entweder Ansatz?

Grüße,

Pille.

Antwort

0

Wenn Sie die nächste Zeile unabhängig von Ausnahmebedingungen lesen möchten (Ausnahme ausgelöst oder nicht ausgelöst, ob sie behandelt oder nicht behandelt wird), schreiben Sie input.nextLine() in finally Block. Wenn Sie die nächste Zeile nur lesen möchten, wenn eine Exception ausgelöst wird und diese behandelt wird, schreiben Sie input.nextLine() in den entsprechenden Block catch.

0

catch und finally sind unterschiedliche Verwendung. finally kümmern sich nicht um Ausnahmearten usw. Verwenden Sie also finally, wenn Sie Code ausführen müssen, ob die Methode ok oder nicht funktioniert.

catch kümmern wir uns um Ausnahmetypen. Also, Sie behandeln, wenn exceptoin aufgetreten ist. Weil Sie nicht möchten, dass Ihre Anwendung abstürzt.