java newfile() bug_java初学者小白?遇到BUG就慌了?有关java异常的十大问题详解!...
1.已檢查與未檢查
簡而言之,必須在方法中顯式捕獲已檢查的異常,或在方法的throws子句中聲明該異常。未檢查的異常是由無法解決的問題引起的,例如被零除,空指針等。檢查的異常特別重要,因為您希望使用API的其他開發(fā)人員知道如何處理異常。
例如,IOException是一個常用的已檢查異常,而RuntimeException是一個未檢查的異常。您可以在閱讀其余內(nèi)容之前先檢查一下Java異常層次結(jié)構(gòu)圖。
2.異常管理的最佳實踐
如果可以正確處理異常,則應(yīng)將其捕獲,否則應(yīng)將其引發(fā)。
3.為什么在try中定義的變量不能用于catch或final?
在以下代碼中,在try塊中聲明的字符串s不能在catch子句中使用。該代碼不通過編譯。
嘗試 {
File file = new File (“ path” );
FileInputStream fis = 新的 FileInputStream (文件);
字符串 s = “ inside” ; } catch (FileNotFoundException e ) {
e。printStackTrace ();
系統(tǒng)。出來。println ( s ); }
原因是您不知道在try塊中的哪個位置會引發(fā)異常。很有可能在聲明對象之前引發(fā)了異常。對于此特定示例,這是正確的。
4.為什么Double.parseDouble(null)和Integer.parseInt(null)拋出不同的異常?
他們實際上拋出了不同的異常。這是JDK的問題。它們是由不同的開發(fā)人員開發(fā)的,因此不值得過多思考。
整數(shù)。parseInt (null); //拋出java.lang.NumberFormatException:null
雙倍。parseDouble (null); //拋出java.lang.NullPointerException
5. Java中常用的運行時異常
這里只是其中一些。
IllegalArgumentException
ArrayIndexOutOfBoundsException
當(dāng)不滿足條件時,可以在if語句中使用它們,如下所示:
如果 ( obj == null) {
拋出 新的 IllegalArgumentException (“ obj不能為null” );
6.我們可以在同一個catch子句中捕獲多個異常嗎?
答案是肯定的。只要這些異常類可以追溯到類繼承層次結(jié)構(gòu)中的同一超類,就只能使用該超類。
7.構(gòu)造函數(shù)可以在Java中引發(fā)異常嗎?
答案是肯定的。構(gòu)造函數(shù)是一種特殊的方法。這是一個代碼示例。
8.在最后一個子句中引發(fā)異常
進(jìn)行以下操作是合法的:
公共 靜態(tài) 無效主(字符串[ ] args ) {
文件 file1 = 新 文件(“ path1” );
文件 file2 = 新 文件(“ path2” );
嘗試 {
FileInputStream fis = 新的 FileInputStream ( file1 );
} catch (FileNotFoundException e ) {
e。printStackTrace ();
} 最后 {
嘗試 {
FileInputStream fis = new FileInputStream ( file2 );
} catch (FileNotFoundException e ) {
e。printStackTrace ();
}
}}
但是,為了獲得更好的代碼可讀性,您應(yīng)該將嵌入式try-catch塊包裝為新方法,然后將方法調(diào)用放在finally子句中。
公共 靜態(tài) 無效主(字符串[ ] args ) {
文件 file1 = 新 文件(“ path1” );
文件 file2 = 新 文件(“ path2” );
嘗試 {
FileInputStream fis = 新的 FileInputStream ( file1 );
} catch (FileNotFoundException e ) {
e。printStackTrace ();
} 最后 {
methodThrowException ();
} }
9.可以在finally塊中使用
是的,它可以。
10.為什么開發(fā)人員會默默使用異常?
發(fā)生了許多類似以下的時間代碼段。如果正確處理異常非常重要,為什么開發(fā)人員還會繼續(xù)這樣做呢?
嘗試 {
...} catch(Exception e ) {
e。printStackTrace (); }
因為忽略很容易。頻繁發(fā)生并不意味著不正確。
最后,開發(fā)這么多年我也總結(jié)了一套學(xué)習(xí)Java的資料與面試題,如果你在技術(shù)上面想提升自己的話,可以關(guān)注我,私信發(fā)送領(lǐng)取資料或者在評論區(qū)留下自己的聯(lián)系方式,有時間記得幫我點下轉(zhuǎn)發(fā)讓跟多的人看到哦。
總結(jié)
以上是生活随笔為你收集整理的java newfile() bug_java初学者小白?遇到BUG就慌了?有关java异常的十大问题详解!...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python读取日期_从文件中读取日期和
- 下一篇: 70周年纪念钞能升值吗