2017-08-10 33 views
3

我新的Java和我想知道,如果Java有類似的Python異常處理,在那裏你必須指定異常類型。例如:在Java中是否有相當於Python的異常?

try: 
    f = open('text.tx', 'r') 
except: 
    #Note you don't have to specify the exception 
    print "There's an error here" 

我希望你能幫助我。

+2

也許你正在考慮Java異常:https://docs.oracle.com/javase/tutorial/essential/exceptions/ – duffymo

+0

可能你應該看看[this](https://stackoverflow.com /問題/ 1075895 /何燦I-包羅萬象的最例外的是,將待濺通讀取與writi) – kiiiiNNNNNNNNNyyyy

+1

這是在Python不好的做法。你絕對不應該在那裏做。我猜Java中的等價物是'catch(Exception e)',雖然,可能相當於python'除了Exception作爲e:' –

回答

2

Java所有的例外是某種java.lang.Exception延伸。所以,你總是可以做:

try { 
    // something that maybe fails 
} catch (Exception e) { 
    // do something with the exception 
} 

它會抓住任何其他類型的異常,你就不會知道實際例外的是什麼,無需調試。

2

是有一些所謂的try和catch塊,它看起來是這樣的:

try 
{ 
    //Code that may throw an exception 
}catch(Exception e) 
{ 
    //Code to be executed if the above exception is thrown 
} 

爲您的代碼上面它可能像這樣進行檢查:

try 
{ 
    File f = new File("New.txt"); 
} catch(FileNotFoundException ex) 
{ 
    ex.printStackTrace(); 
} 

希望這有助於尋找在此處獲取更多信息:https://docs.oracle.com/javase/tutorial/essential/exceptions/

2

您不能忽略異常類型,但最寬的try-catch塊應該是:

try { 
    // Some code 
} catch(Throwable t) { 
    t.printStackTrace(); 
} 

其捕獲ExceptionsErrors和任何其他類實現Throwable,你可能想扔。

這也將是令人難以置信的愚蠢的使用在任何地方,尤其是在文件訪問一樣簡單。 IOException是一個檢查的異常,因此無論何時執行文件操作,編譯器都會提醒您處理該異常。沒有必要做一個全面的,它只會讓你的代碼變得更脆弱。

相關問題