作者Shrugg (淚眼問花花不語)
看板java
標題[問題] 程式的例外
時間Mon Apr 15 19:19:04 2013
想請問一個一直都沒辦法在邏輯上說服自己的觀念性問題
參考資料都說,程式的例外是用來擷取runtime時的例外情形,用來攔截例外的發生的.
可是要是已經知道會有那些例外可能發生,
設計程式時我們不是就會把限制條件給加上去了,
根本不用等到例外發生了再來攔截吧?
Runtime會發生的例外都是設計程式時根本沒想到的,既然沒想到,
為什麼會知道要怎麼去預防呢?
像旗標的Java2第十四章以一個使用者輸入錯誤當例子,程式例只能輸入數字
但當使用者輸入字串時就會是一個例外,所以程式安排這邊設計一個攔截字串例外
發生時的處理.
但是假設我是這個程式的開發者
我要是一開始就知道這個例外的存在,我就會設條件讓使用者不能輸入數字以外的資料了
如果我連這個例外都沒有預估到,我又怎麼會知道要去攔截這個例外呢?
希望有人知道我在說甚麼
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 137.132.255.14
1F:推 mars90226:今天如果socket連線出問題,你就不能用if判斷了 04/15 20:26
2F:→ cha122977:等到接觸IO類的exception你就會有感覺啦~ 04/15 22:45
3F:→ DeathWatch:你無法完全預測哪裡會有問題 04/15 23:18
4F:→ cha122977:另外要是例外情況超多的時候 用if可能會瘋掉~ 04/15 23:44
5F:推 johnny94:版主好像有寫一篇關於例外的文章應該可以解答你的問題 04/16 00:50
6F:推 PsMonkey:囧> 我有寫過嗎? 有誰可以幫我考古一下... 自己都忘了 04/16 01:42
7F:→ Shrugg:socket斷線如果是我可以預估到而特別加上例外去處理,那我也 04/16 22:17
8F:→ Shrugg:可以在一開始就加上timeout來處理不是更方便? 斷線又不見得 04/16 22:19
9F:→ Shrugg:是我這邊的問題,所以用timeout提示比用例外會更容易了解. 04/16 22:21
10F:→ tkcn:timeout 的部份 OS 已經幫你做好了 04/16 22:45
11F:推 LaPass:socket的timeout已經寫好了啊.... 你打算寫什麼? 04/17 05:21