Re: [問題] ASP的錯誤陷阱 無助於除錯怎辦
※ 引述《jaker (Jaker)》之銘言:
: 說出現錯誤,可是畫面上回報的錯誤訊息根本沒有幫助,
: 發生的訊息如下:
: ==============
: 錯誤 Number: 3704
: 錯誤資訊: 當物件關閉時,不允許操作。
: 出錯文件: ADODB.Recordset
: 出錯行:
: ==============
: 出錯行是空白,這樣我根本看不出是哪一行出了錯誤啊。
: 如果取消on error,確實是會顯示完整的錯誤和行數,
: 可是遇到問題的都是不懂電腦更不懂程式的買家,
: 就算他們看到這些訊息也不會知道要告訴我。
: (因為取消了on error也失去了將處理方式告知買家的機會)
: 最近訂單大降,可能跟這個有很重要的關係,
: 到底要怎麼辦才好呢?
雖然很無奈,但是 #3704 查得到 error 類型是 object is closed.
而物件跟 recordset 有關.
一頁中會用到 recordset 的數目應該不多,可以從頭到尾看程式
哪裡程式製造出一種狀態讓 recordset 這個物件不見了.
除錯是要針對問題解決,而不是針對程式行數解決.
具體來說要從頭到尾把程式過程看清楚,思考在中間有沒有製造一些意外效果的 bug,
而這種毛病是比較難抓. 可以用特定位置列印變數的方式,定位出錯的位置,
相對是比較好抓到問題.
另外因為出錯都會默默通過,所以要在程式的任何可能會出錯的位置之後
自己做 if err.number <> 0 判斷,加上補救程序,當作是一種土法的 try-catch 來用.
然後,對買家來說,要盡可能拋出可以理解的錯誤訊息,例如:
"程式出問題,請洽工程人員". 至於程式詳細訊息就留在 dev 版本給程式人員吧.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.160.209.190
※ 編輯: yauhh 來自: 218.160.209.190 (03/17 23:24)
推
03/18 00:04, , 1F
03/18 00:04, 1F
→
03/18 00:04, , 2F
03/18 00:04, 2F
→
03/18 00:05, , 3F
03/18 00:05, 3F
→
03/18 00:05, , 4F
03/18 00:05, 4F
→
03/18 00:06, , 5F
03/18 00:06, 5F
→
03/18 00:07, , 6F
03/18 00:07, 6F
→
03/18 08:43, , 7F
03/18 08:43, 7F
→
03/18 08:44, , 8F
03/18 08:44, 8F
→
03/18 08:44, , 9F
03/18 08:44, 9F
→
03/18 13:41, , 10F
03/18 13:41, 10F
→
03/18 13:42, , 11F
03/18 13:42, 11F
→
03/18 13:43, , 12F
03/18 13:43, 12F
推
03/20 11:49, , 13F
03/20 11:49, 13F
→
03/20 11:50, , 14F
03/20 11:50, 14F
討論串 (同標題文章)