;
; -------------------------------------------------------------------------
;
; PureBasic - OnError
;
; More examples can be found in the "PureBasic\Sources\OnError" drawer
;
; You need to disable the PureBasic debugger to have it working.
;
; --------------------------------------------------------------------------
;
; If there is an error, jump to the CatchError label.
OnErrorGoto(?CatchError)
; Tell this the user:
MessageRequester("Information!","The program will jump to the CatchError label,"+Chr(13)+Chr(10)+"and display a message in case of an error.")
; Now some code with bugs in it:
Null.l=0 ;1. division by 0
Ergebnis.l = 123 / Null
!INT 3 ;2. asm breakpoint
PeekL(99) ;3. reading memory at a forbidden area
; the program will end before this, because of the above errors.
MessageRequester("Information!","This will never be executed!")
End
; This is the Goto label, which will be executed in case of an error.
CatchError:
Msg$ = "There was an error:"+Chr(13)+Chr(10)+Chr(13)+Chr(10)
Msg$ + "Description: " + GetErrorDescription()+Chr(13)+Chr(10)
Msg$ + "Total number of errors: "+Str(GetErrorCounter())+Chr(13)+Chr(10)+Chr(13)+Chr(10)
Msg$ + "The program will end now."
MessageRequester("Error!", Msg$)
; Now end the program, because we can't jump back after OnErrorGoto()
End
; ExecutableFormat=Windows
; DisableDebugger
; EOF