亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

此代碼能否拋出除 ConcurrentModificationException 之外的任何其他

此代碼能否拋出除 ConcurrentModificationException 之外的任何其他

翻閱古今 2022-10-07 17:04:45
我想知道這段代碼是否會拋出任何其他異常。public class asd{static private List<Integer> list = new ArrayList<>();public static main(String[]args){list.add(0);list.add(1);list.add(3);for(Integer integer: list) {        if(integer% 2 == 0) {           list.remove(integer);         }    }  }}我知道 ConcurrentModificationException。我只是想知道這段代碼是否能夠做更多的混亂。非常感謝
查看完整描述

3 回答

?
犯罪嫌疑人X

TA貢獻2080條經驗 獲得超4個贊

此特定代碼不會引發異常,因為列表為空。NullPointerException但如果列表中有null值,則可以有s。(拆箱:https ://docs.oracle.com/javase/tutorial/java/data/autoboxing.html )



查看完整回答
反對 回復 2022-10-07
?
蝴蝶不菲

TA貢獻1810條經驗 獲得超4個贊

不,此外,由于 中沒有元素,因此不會執行循環list,但如果有的話,只會ConcurrentModificationException拋出 。



查看完整回答
反對 回復 2022-10-07
?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

您編寫的代碼完全是確定性的:無論您在何處運行它,它都會做同樣的事情。因此,它會拋出哪些異常?嗯,運行它。這就是它會拋出的東西,它不會拋出任何其他東西。正如其他人所說,這段代碼特別會 throw ConcurrentModificationException,因為如果你想內聯刪除,你需要使用 iterators方法(如果你使用樣式,你remove()不能訪問該方法,你必須使用反而。for( a : b)Iterator<T> it = list.iterator(); while (it.next()) { .. }

如果您想深入了解 Java 應用程序中可能發生的異常,那么您可以就該主題寫一整本書。我想只是命名一些隨機想到的東西,看看那個代碼:

如果列表被堆損壞,則無聲強制轉換為整數將拋出ClassCastException. 如果列表中有空值,自動拆箱會拋出NullPointerException. 如果您忘記初始化列表,則會拋出一個NullPointerException,或者編譯器將失敗并顯示錯誤“列表未初始化”,具體取決于您編寫代碼的方式。


查看完整回答
反對 回復 2022-10-07
  • 3 回答
  • 0 關注
  • 113 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號