java 板


LINE

※ 引述《AmosYang (LetMeGoogleThatForYou)》之銘言: : 某些 exception 被劃分在 checked exception 有他的理由; 這些理由通常難以一言道盡 : 只有親身去多接觸不同類型、規模的程式才會體會 :) : 推 H45:sleep 被意外中斷很容易修復,所以被包在 checked exception 10/05 16:02 : → AmosYang:無法理解 H45 推文裡的邏輯… 10/06 08:09 : 推 H45:因為你說劃分在 checked exception 的理由一言難盡,所以我就. 10/06 08:57 : → H45:用一言把 sleep 被劃在 checked exception 的理由說完 :-) 10/06 08:58 這的確是用一言就說完了 :D 不過我真的不了解這一言裡的邏輯 我從來沒有想過把 "容易修復" 與 checked exception 背後的設計觀放在一起看 所以很好奇;能否對 "很容易修復" 再進一步的解釋? 所謂很容易是怎麼個容易法? "修復" 又是指怎麼個修法? (回去繼續睡? XD) 我的看法是, sleep (及其他 Thread 相關的 method) 之所以會丟出一個 checked exception 是在利用 Java 這個語言提供的功能來把 multi-thread 程式 導向一個比較耐命 (robust? XD) 的 pattern 也就是在 compile time 就強制 programmer 仔細去想想要怎麼處理一個潛在的 InterruptedException 反過來想,如果 sleep (及其他 Thread 相關的 method) 丟的是 unchecked exception 一個 Runnable 放出去跑一跑,累了睡一覺等 CD 時被一個 unchecked exception 砸死 然後 unchecked exception 一路炸上去,最後整隻 thread 炸掉炸得屍骨無存 這時候才開始知道什麼是寫 multi-thread 程式的樂趣… XD 再從另一個角度來看,不管 try-catch 坦 checked exception 坦得再好, 總有一天,某個 Runnable 註定就是要被 unchecked exception 砸死的 (例如 IndexOutOfBoundException) 然而,如果因為被 unchecked exception 砸死再來怪 try-catch 沒坦好 更甚者還有全盤否定 checked exception 背後設計觀的 那…還是 SCJP 考一考就好了,儘量不要寫真的 Java 程式吧 XD 再扯一個很遠很遠, C# 的例子, C# 裡並沒有 checked exception, 在設計能讓第三方 plug-in code 相關的東西時就要小心, 第三方的 plug-in code 有心攻擊的話可以藉由丟出 exception 試圖改變 code flow 當然這解法很簡單,把第三方 plug-in code 用 try-catch 包起來就可以 只是有的時候會忘記,如果能藉由語言本身的功能來強制一些 design pattern 有時的確蠻有用的 回到原題, "為什麼 exception X 是 checked exception?" "為什麼 exception Y 是 unchecked exception?" "為什麼 method A 丟 checked exception 而 method B 丟 unchecked exception?" 我仍然只能說這背後的原因難以一言盡之 (開始跳針 XD) --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 65.87.177.87
1F:推 H45:可以等我研究透徹之後再給你一個完整的回覆嗎 :) 10/06 10:11
https://www.youtube.com/watch?v=Z2q7JW9pBfQ#t=4m44s XD
研究透徹!? 你看到那個在啃 AoCP 的老頭了嗎? 他在13歲的時候方丈說要他把 CompSci 研究透徹才準出少林寺… XD 編輯加上一段話 這篇裡 XD 好像用太多了… XD ※ 編輯: AmosYang 來自: 65.87.177.87 (10/06 10:52)
2F:推 PsMonkey:喔喔喔... 雞排攤準備!! 10/06 10:27
3F:推 kimkao:忽然間覺得不可以盡信網站資源! 10/07 11:04
4F:→ kimkao:剛對indexOutOfBoundsException有疑慮!結果大陸某些網站 10/07 11:06
5F:→ kimkao:把這exception當成checked exception @@..沒事還是動手try 10/07 11:08







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP