[問題] 程式的例外

看板java作者 (淚眼問花花不語)時間12年前 (2013/04/15 19:19), 編輯推噓4(407)
留言11則, 8人參與, 最新討論串1/12 (看更多)
想請問一個一直都沒辦法在邏輯上說服自己的觀念性問題 參考資料都說,程式的例外是用來擷取runtime時的例外情形,用來攔截例外的發生的. 可是要是已經知道會有那些例外可能發生, 設計程式時我們不是就會把限制條件給加上去了, 根本不用等到例外發生了再來攔截吧? Runtime會發生的例外都是設計程式時根本沒想到的,既然沒想到, 為什麼會知道要怎麼去預防呢? 像旗標的Java2第十四章以一個使用者輸入錯誤當例子,程式例只能輸入數字 但當使用者輸入字串時就會是一個例外,所以程式安排這邊設計一個攔截字串例外 發生時的處理. 但是假設我是這個程式的開發者 我要是一開始就知道這個例外的存在,我就會設條件讓使用者不能輸入數字以外的資料了 如果我連這個例外都沒有預估到,我又怎麼會知道要去攔截這個例外呢? 希望有人知道我在說甚麼 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 137.132.255.14

04/15 20:26, , 1F
今天如果socket連線出問題,你就不能用if判斷了
04/15 20:26, 1F

04/15 22:45, , 2F
等到接觸IO類的exception你就會有感覺啦~
04/15 22:45, 2F

04/15 23:18, , 3F
你無法完全預測哪裡會有問題
04/15 23:18, 3F

04/15 23:44, , 4F
另外要是例外情況超多的時候 用if可能會瘋掉~
04/15 23:44, 4F

04/16 00:50, , 5F
版主好像有寫一篇關於例外的文章應該可以解答你的問題
04/16 00:50, 5F

04/16 01:42, , 6F
囧> 我有寫過嗎? 有誰可以幫我考古一下... 自己都忘了
04/16 01:42, 6F

04/16 22:17, , 7F
socket斷線如果是我可以預估到而特別加上例外去處理,那我也
04/16 22:17, 7F

04/16 22:19, , 8F
可以在一開始就加上timeout來處理不是更方便? 斷線又不見得
04/16 22:19, 8F

04/16 22:21, , 9F
是我這邊的問題,所以用timeout提示比用例外會更容易了解.
04/16 22:21, 9F

04/16 22:45, , 10F
timeout 的部份 OS 已經幫你做好了
04/16 22:45, 10F

04/17 05:21, , 11F
socket的timeout已經寫好了啊.... 你打算寫什麼?
04/17 05:21, 11F
文章代碼(AID): #1HQ-8gKq (java)
討論串 (同標題文章)
文章代碼(AID): #1HQ-8gKq (java)