關(guān)于Java異常的疑問(wèn)
問(wèn)題描述
眾所周知下面的代碼編譯不過(guò):
public class test{ private static void haha(){throw new Exception(); } public static void main(String[] args) {haha();return; }}
javac test.java
未報(bào)告的異常錯(cuò)誤Exception; 必須對(duì)其進(jìn)行捕獲或聲明以便拋出。
但是下面的代碼沒(méi)有進(jìn)行錯(cuò)誤處理,卻能夠通過(guò)編譯:
public class test{ public static void main(String[] args) {String s = new String('test');System.out.println(s.substring(0,6));return; }}
javac test.javajava test
Exception in thread 'main' java.lang.StringIndexOutOfBoundsException: String index out of range: 6at java.lang.String.substring(Unknown Source)at test.main(test.java:4)
請(qǐng)問(wèn)這是什么原因?
問(wèn)題解答
回答1:StringIndexOutOfBoundsException繼承了RuntimeException,不需要顯式地聲明處理。
回答2:第一個(gè)拋出的是Exception是checked異常,也就是編譯器異常,所以必須手動(dòng)處理。第二個(gè)拋出的StringIndexOutOfBoundsException是unchecked異常,運(yùn)行時(shí)異常,所以不需要手動(dòng)處理
相關(guān)文章:
1. [python2]local variable referenced before assignment問(wèn)題2. Python2中code.co_kwonlyargcount的等效寫(xiě)法3. python中怎么對(duì)列表以區(qū)間進(jìn)行統(tǒng)計(jì)?4. javascript - 我的站點(diǎn)貌似被別人克隆了, google 搜索特定文章,除了域名不一樣,其他的都一樣,如何解決?5. mysql - 請(qǐng)問(wèn)數(shù)據(jù)庫(kù)字段為年月日,傳進(jìn)的參數(shù)為月,怎么查詢(xún)那個(gè)月所對(duì)應(yīng)的數(shù)據(jù)6. python - 如何判斷字符串為企業(yè)注冊(cè)名稱(chēng)7. javascript - vue+iview upload傳參失敗 跨域問(wèn)題后臺(tái)已經(jīng)解決 仍然報(bào)403,這是怎么回事啊?8. php - 微信開(kāi)發(fā)驗(yàn)證服務(wù)器有效性9. html - 移動(dòng)端radio無(wú)法選中10. 求救一下,用新版的phpstudy,數(shù)據(jù)庫(kù)過(guò)段時(shí)間會(huì)消失是什么情況?
