2012-10-20 27 views
1

考慮一下:的try/catch似乎無所事事在Java ME的

public class Minesweeper extends MIDlet implements CommandListener { 
    public static String error = ""; 

    public void startApp() throws MIDletStateChangeException { 

    try{ 
     int int = 5; 
    } catch (Exception e) { 
     error = e.toString(); 
    } 
    } 
} 

int是無效的名稱爲int,所以肯定是錯誤應該被抓住並error註冊? (這個錯誤是有目的的,所以我可以趕上它)

但你可能已經猜到了,但錯誤似乎沒有被捕獲,並且應用程序停止與java/lang/Error Unresolved compilation problem: syntax error on token 'int'...

我在做什麼錯。

(順便說一句,這只是一個測試,所以我知道我能趕上正確的錯誤,我顯然不會使用該代碼的最終版本。)

回答

2

這是你的問題 - 「INT INT = 5;」 - 不能使用「int」作爲變量名稱;)

您試圖將保留字用作變量名稱。編譯問題與你的try-catch塊無關或無法工作,編譯器永遠不會得到那麼多。

+0

所以你不能捕獲那樣的錯誤?你可以捕捉哪些錯誤? – ACarter

+3

那麼,在這個問題的上下文中 - 我會說解釋它的最簡單方法是try/catch在*程序*嘗試做某件事情時起作用,並且失敗。但是,要編譯程序,必須遵循語言/編譯器的適當規則/語法。換句話說,try/catch更適用於捕捉*運行時*異常 - 而不是編譯時錯誤。 – Xelloss

1

Try/catch塊不能用於那種錯誤。

如果您嘗試加載不存在的文件,則會觸發。試試這個:

Image img = Image.createImage("blabla.png");