Imports System Imports uCalcSoftware Public Module Program Public Sub RecoveryHandler(ByVal h As Handle_uCalc) Dim uc As New uCalc(h) Console.WriteLine($"Handler: Caught '{uc.Error.Message}'") '// Attempt to recover by resuming execution. uc.Error.Response = ErrorHandlerResponse.Resume Console.WriteLine("Handler: Resuming execution...") End Sub Public Sub RiskyOperation(ByVal cb As uCalc.Callback) Dim input = cb.ArgStr(1) If input = "bad" Then cb.Error.Raise("A recoverable error occurred.") '// After the error handler resumes, this return value will be used. Else cb.ReturnStr("Normal_OK") End If End Sub Public Sub Main() Dim uc As New uCalc() uc.Error.AddHandler(AddressOf RecoveryHandler) uc.DefineFunction("DoWork(s As String) As String", AddressOf RiskyOperation) Console.WriteLine("Result: " + uc.EvalStr("DoWork('good')")) Console.WriteLine("---") Console.WriteLine("Result: " + uc.EvalStr("DoWork('bad')")) End Sub End Module