Re: [問題] 程式的例外
: 我要是一開始就知道這個例外的存在,我就會設條件讓使用者不能輸入數字以外的資料了
: 如果我連這個例外都沒有預估到,我又怎麼會知道要去攔截這個例外呢?
: 希望有人知道我在說甚麼
我把你的設的這例子先轉為簡單的程式碼
if (! 是數值 ) {}
else if (! 小於 Integer.MAX_VALUE) {}
else if (! 大於 Integer.MIN_VALUE) {}
else if ......
else{
/* 確定為有效數值,開始處理 */
}
這個模式,如果在沒有辦法使用try catch 時最常見的做法
說穿了,也不過就只是把try catch 反過來寫;那來看看try 的寫法
try{
/* 開始處理 */
}
catch( 預期錯誤 ){}
catch( 非預期錯誤 Exception ){}
第一個好處是,以軟體工程的角度來看,我可以先看到程式碼的內容
而不用先歷經一大串尚無法理解的內容後,才看到真實要進行的動作
第二個好處,他可以處理非預期錯誤,當然樓主的問題是非預期的是
不會發生的;但在交易系統中,非預期錯誤的處理確是基本問題。
try{
begin;
{交易啟始}; {交易進行}; {交易完成};
commit;
}
catch( 預期及非預期錯誤 ){
{交易失敗};
rollback;
}
finally{
{交易訊息};
}
我想說的是,非預期性的問題是絕對存在的
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.109.20.106
討論串 (同標題文章)