Re: [問題] ASP的錯誤陷阱 無助於除錯怎辦

看板Programming作者 (喲)時間13年前 (2011/03/17 23:20), 編輯推噓2(2012)
留言14則, 4人參與, 最新討論串2/6 (看更多)
※ 引述《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
您說的沒錯,問題是發生錯誤都是在user端,
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
程式補捉到錯誤時,寫資訊到LOG,請USER給
03/20 11:49, 13F

03/20 11:50, , 14F
Log
03/20 11:50, 14F
文章代碼(AID): #1DWYRQCs (Programming)
討論串 (同標題文章)
文章代碼(AID): #1DWYRQCs (Programming)