2011-07-11 21 views
0

假設我想退出控制檯程序(如果用戶輸入字符f並且在程序的任何時間)。 用戶應該輸入一些信息,但是我希望他輸入輸入的每一步都能夠在輸入「f」時停止所有操作? 我該怎麼做? 它應該是這樣的:有關如何以異常退出程序的問題

try 
{ 
if (userchoice.equals("F")) 
    { 
    throw new exception e; 
    } 
} 
catch (exception e) 
{ 
    System.exit(1); 
} 

感謝

+1

你試過了嗎? – skaffman

+0

如果未發現異常,它可能會退出程序。你確定這真的需要嗎? –

+1

您是否可以等到用戶按,或者您想按下'f'完全退出? –

回答

0

下面是正確的語法:

try { 
    if (userchoice.equals("F")) { 
    throw new Exception(); 
    } 
} catch (Exception e){ 
    System.exit(1); 
} 
+0

好的,謝謝,但在程序設計中使用例外或其他方式退出是正確的嗎?再次感謝 – GAEBegginer

+0

默默地捕捉任何異常可能不是最好的方法。 ;) –

+0

@Andreas_D:你錯過了「等於參數,代表你編輯,希望你不要介意 –

2

您可以拋出異常,除非它被捕獲,否則會導致當前線程死亡。

if ("f".equalsCaseIgnore(userchoice)) 
    throw new IllegalArgumentException("Option "+userchoice+" not allowed."); 
0

請執行以下操作。

  • 使用諸如BufferedReaderScanner之類的類從命令行讀取輸入。
  • 檢查輸入字符串中的字符「f」。
  • 使用throw new MyException();
  • 抓住catch塊中的異常拋出你的異常,並與System.exit(1);

終止它,如果你需要 「F」 或 「F」,使用equalsIgnoreCase()功能。

嘗試這樣的事情,

try{ 
    if (userchoice.equals("F")) { 
     throw new MyException; 
     } 
    } 
catch (MyException e) { 
    System.out.println("MyException caught because i/p character was F" + e); 
    System.exit(1); 
    } 
0

炭「F」的輸入是正常現象,所以拋出一個異常,可能是走錯了路。

將輸入封裝在負責處理輸入和決定行爲的方法中。

如果用戶輸入「f」或調用執行該工作的退出方法,則在此調用system.exit()。