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灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP