Debugging-Informationen mit Error.Backtrace.Join("n")
abrufen
(Stand der EN Seite vom 17.03.2024)
Beim Debuggen von Code fangen Sie Fehler ab und verfolgen deren Quelle mit der Eigenschaft Error.
Backtrace.
Public Sub Form_Load()
' Ihr Code steht hier...
Catch
Message.Error(Error.Text & "\nBacktrace:\n" & Error.Backtrace.Join("\n"))
End
Oder...
Public Sub Form_Load()
' Ihr Code steht hier...
Catch
Debug Error.Text & "\nBacktrace:\n" & Error.Backtrace.Join("\n")
End
Dieser Ansatz könnte weiter verbessert werden, in dem der Fehler nur bei einem Debug-Compilat in einem Dialog angezeigt wird - wie hier demonstriert, während der Fehler bei einem Release-Compilat in eine Log-Datei geschrieben wird. Die Unterscheidung zwischen Debug-Compilat und Release-Compilat könnte durch eine globale statische Konstante realisiert werden.
Public $bDEBUG As Boolean = False
Public $sPath As String = "~/gambas-log.txt"
Public Sub Form_Load()
' Ihr Code steht hier...
Catch
Dim sError As String = Error.Text & "\nBacktrace:\n" & Error.Backtrace.Join("\n")
If $bDEBUG Then
Message.Error(sError)
Else
If LogToFile($sPath, "Error", "Meine-Aktuelle-Komponente", sError) = False Then
' Etwas wirklich schlimmes ist passiert!
Endif
Endif
End
Public Function LogToFile(sPath As String, sCategory As String, sTopic As String, sMessage As String) As Boolean
Dim hFile As File
If Exist(sPath) Then
hFile = Open sPath For Write Append
Else
hFile = Open sPath For Write Create
Endif
Print #hFile, Now; " | "; sCategory; " | "; sTopic; " | "; Replace$(Replace$(sMessage, "\n", "; "), ":;", ":")
Close #hFile
Return True
Catch
Return False
End