0

例外キャッチの一部としてinput.nextLine()を呼び出すと、すべてのキャッチブロックまたはfinallyブロック試合終了時にいずれのアプローチにも利点または不利な点は何ですか?スキャナ入力のJava例外処理:nextLineで不良データをクリアする(最後にキャッチする)

例:

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"); 
    } 

それとも

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(); 
    } 

いずれかのアプローチの利点や欠点は何ですか?

ありがとう、

ピル。

答えて

0

例外条件(例外が発生したかどうかにかかわらず処理されたかどうかにかかわらず)に関係なく次の行を読み取る場合は、finallyブロックにinput.nextLine()を書き込んでください。例外が発生して処理されたときにのみ次の行を読みたい場合は、それぞれcatchブロックにinput.nextLine()と書いてください。

0

catchおよびfinallyはそれぞれ用途が異なります。 finally例外の種類などについて気にしないでください。したがって、メソッドの処理が正常かどうかに関係なく、コードを実行する必要がある場合はfinallyを使用してください。

catch例外タイプについては注意してください。だから、例外が発生したときに処理します。アプリケーションをクラッシュさせたくないからです。

関連する問題