關(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. phpstudy8.1沒(méi)集成mysql-front2. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問(wèn)題3. node.js - mongodb查找子對(duì)象的名稱為某個(gè)值的對(duì)象的方法4. docker鏡像push報(bào)錯(cuò)5. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””6. docker 下面創(chuàng)建的IMAGE 他們的 ID 一樣?這個(gè)是怎么回事????7. 利用IPMI遠(yuǎn)程安裝centos報(bào)錯(cuò)!8. html5 - datatables 加載不出來(lái)數(shù)據(jù)。9. 前端 - @media query 使用出現(xiàn)的問(wèn)題?10. html5和Flash對(duì)抗是什么情況?

網(wǎng)公網(wǎng)安備