除錯很重要
但百密還是會有一疏 (像MS這麼多高手,但每個月還是 SP發送個沒完)
而軟體寫到差不多後,就可對外發表/發行
但如果使用者使用時發生問題
如果沒有除錯資訊供摻考那就很難修正
這裡提供一個 個人經驗
方法不難
首先盡量在 每個函式/副程式 內填入以下制式文字
PHP 語法:
Private Sub 函式A(e As Args)
On Error GoTo LB_ErrorHandler
~程式碼~
Exit Sub
LB_ErrorHandler:
除錯用.內文 = "函式A"
Resume Next
End Sub
接著VB加入一個類別
Public 除錯用 As New 除錯用Class
PHP 語法:
Public Class 除錯用Class
Private s內文 As String = "" Public Property 內文() As String
Get
Return s內文
End Get
Set(ByVal value As String)
If value.Length > 0 Then
s內文 = s內文 & Now.ToString & ":[" & UnsafeNativeMethods.GetTickCount & "] ~ " & _
value & "發生在程式:" & Err.Erl.ToString & " 行" & vbNewLine & _
Err.Description & vbNewLine & vbNewLine
Err.Clear()
If Main_Form.錯誤LogToolStripMenuItem.Enabled = False Then Main_Form.錯誤LogToolStripMenuItem.Enabled = True
End If
End Set
End Property
Public Sub 清除()
s內文 = ""
End Sub
End Class
最後在整個軟體結尾加一行
PHP 語法:
If 除錯用.內文.Length > 10 Then
My.Computer.FileSystem.WriteAllText(fn_LogFileName, 除錯用.內文, True)
End If
以上就完成了
如果 函式A 在運行時發生錯誤
就會得到 fn_LogFileName 錯誤資訊檔
P.S. fn_LogFileName As String 須定義檔名及路徑
以上這個方法可以得到很強的容錯能力(不容易使軟體執行崩毀)
又可得到除錯資訊