2014-05-07 66 views
0

我正在做這個項目作爲一個學校項目,其中一個必要的事情是捕捉用戶不正確的東西。如何在JavaFX中使用try-catch?

我有這張卡的列表,用戶可以添加或刪除卡。我想在刪除部分使用try-catch - 如果用戶試圖刪除其中一個默認卡(不是用戶輸入卡),它將顯示錯誤。

我想做的是通知用戶一個標籤,他不可能將其刪除。用if-else很簡單,但如何用try-catch來做到這一點?

eemalda.setOnAction(new EventHandler<ActionEvent>() { 
    public void handle(final ActionEvent event) { 
     if (((Kaardid) kaardid2.get(kaardid2.size() - 1)) 
       .getKaardi_nimi().contains("Ei pea jooma see ring")) { // after this if should be try-catch 
      viimane_kaart.setText("Viimane sisestatud kaart on Baila originaalkaart"); 
     } else { // after this comes the other stuff program does 
      kaardid2.remove(kaardid2.get(kaardid2.size() - 1)); 
      seadetemant.setVisible(false); 
     } 
    } 
}); 

回答

0

對於您的問題中描述的情況,我不建議使用try-catch statement

參見布賴恩·羅奇的回答:Using Exceptions to validate inputs

異常應該用於得天獨厚的條件;你不希望發生的事情。驗證輸入不是非常特殊。

來處理用戶界面無效的輸入,最好的辦法是:

  1. 防止情況,其中可能會出現無效的輸入。
  2. 如果無法預防,請對無效輸入提供即時反饋。

爲您的樣品的情況,而不是讓用戶選擇不可拆卸的卡,嘗試操作刪除它,然後告訴他們,他們無法將其刪除,你既可以:

  1. 不允許他們首先選擇不可移動的卡或
  2. 如果選擇了不可移動的卡,請禁用該卡的移除按鈕或功能。
1

無論您使用哪種框架或包,在java中使用try-catch都是一樣的。同樣的try-catch語句

try{ 
// your code 
} 

catch(Exception e){ 
// your code 
}