Sets, resets or queries the debug level for COM errors
#include <Debug.au3>
_DebugCOMError ( [$iComDebug = 1 [, $bExit = False]] )
$iComDebug | [optional] Debug level. Possible values are: -1 - Return the current settings 0 - Disable debugging 1 - Enable debugging. Output the debug info (default) |
$bExit | [optional] True if the script must be terminated |
Success: | 1 if $iComDebug = 0 or 1 and sets @extended to: 0 - The COM error handler is not initialized 1 - The COM error handler has been initialized 2 - The COM error handler was already active 3 - The COM error handler is already disabled 1 if $iComDebug = -1 and sets the @error flag and @extended to current setting: @error = current Debug level @extended = current script termination. |
Failure: | 0 and sets the @error flag to non-zero. |
@error: | 1 - $iComDebug is not an integer or < -1 or > 1 2 - The COM error handler is already set to another function (= not set by this function) 3 - _DebugSetup() did not run properly. Make sure _DebugSetup() ran properly before calling this function 4 - Installation of the custom error handler failed. @extended is set to the error code returned by ObjEvent() |
Before calling this function, _DebugSetup() must be called first to create the debug session.
#include <Debug.au3>
#include <MsgBoxConstants.au3>
_DebugSetup(Default, True, 1, Default, True) ; 1 = Write messages with timestamps to the Report Log Window
Example()
; Example
; Provoke a COM error and let _DebugCOMError display the error messages in the Report Log Window
Func Example()
; Create application object for the Microsoft Internet Explorer
Local $oIE = ObjCreate("InternetExplorer.Application")
If @error <> 0 Then Exit MsgBox($MB_SYSTEMMODAL, "_DebugCOMError UDF", "Error creating a new IE application object." & _
@CRLF & "@error = " & @error & ", @extended = " & @extended)
; Set up the COM error handler to write error messages to the Report Log Window
_DebugCOMError(1)
; Provoke a COM error. Function is unknown
$oIE.xyz()
If @error <> 0 Then Return MsgBox($MB_SYSTEMMODAL, "_DebugCOMError UDF", "Error occurred and handled." & _
@CRLF & "@error = " & @error)
; Close the IE
$oIE.Quit()
$oIE = 0
EndFunc ;==>Example