java 板


LINE

※ 引述《Shrugg (泪眼问花花不语)》之铭言: : 想请问一个一直都没办法在逻辑上说服自己的观念性问题 : 参考资料都说,程式的例外是用来撷取runtime时的例外情形,用来拦截例外的发生的. : 可是要是已经知道会有那些例外可能发生, : 设计程式时我们不是就会把限制条件给加上去了, : 根本不用等到例外发生了再来拦截吧? 前提:已经知道 那为了怕还有没想到的东西要怎麽做呢? 这样吗? else{ ooxx; } 那跟例外其实是一样的概念 只是有一个很大的问题 你没有办法从一个if else的scope跳到另一个去 第二个 这样写会产生很恐怖的巢状结构 因为每个if else里面都会有更多的程式码要执行 原本是n层的逻辑判断 若因为里面呼叫的function可能回传false来表示错误 那又要多一层来包他变成n+1 包了就算了 上层还是不知道到底是在错啥鬼 於是又要去get一些结果来判断 然後判断完还要处理 而且这还是"呼叫一个function就要做一次的事情" 全部写完 整坨东西的可读性....? 的确 抛出exception的效能比较差 但是效能可以用机器来弥补 且exception不应该太常出现 所以不要把业务逻辑放在exception里面其实也跟效能议题有关 但是基於程式码的可维护性以及再利用性 try-catch是相当方便的开发方式 : Runtime会发生的例外都是设计程式时根本没想到的,既然没想到, : 为什麽会知道要怎麽去预防呢? : 像旗标的Java2第十四章以一个使用者输入错误当例子,程式例只能输入数字 : 但当使用者输入字串时就会是一个例外,所以程式安排这边设计一个拦截字串例外 : 发生时的处理. : 但是假设我是这个程式的开发者 : 我要是一开始就知道这个例外的存在,我就会设条件让使用者不能输入数字以外的资料了 : 如果我连这个例外都没有预估到,我又怎麽会知道要去拦截这个例外呢? : 希望有人知道我在说甚麽 这种范例当然可以预防 因为作者只是举例... 实际上 多数有经验的程式在许多参数截取时都会预先针对null做判断 看是要回传特定讯息还是什麽的 但是这是因为逻辑上相对简单却又常发生 用个if else处理掉相对容易 也不会让程式逻辑架构整个暴走 可是在处理复杂的逻辑时 根本不可能所有事情都考虑到 甚至有的api就是跟你讲他会丢exception出来 这时候用个try catch就会轻松很多了 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.105.1







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

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

TOP