oTest = CREATEOBJECT("TryEndTryTest1") CLEAR TRY oTest.RaiseException() ?"Next line Exception was handled" CATCH TO oX ?"Exception Caught" ENDTRY DEFINE CLASS TryEndTryTest1 as Custom ADD OBJECT TryMember as TryEndTryMemberTest1 FUNCTION Error(nError as Number ,cMethod as String, nLine as Number) ?"Object definition Exception handled" ENDFUNC FUNCTION RaiseException() this.TryMember.RaiseException() && Has exception Handled in outer Try block ENDFUNC ENDDEFINE DEFINE CLASS TryEndTryMemberTest1 as Custom FUNCTION Error(nError as Number ,cMethod as String, nLine as Number) ?"Member Object Exception handled" ENDFUNC FUNCTION RaiseException() Try SELECT PDQ && Handled in Outer Try block CATCH THROW ENDTRY ENDFUNC ENDDEFINE
oTest = CREATEOBJECT("TryEndTryTest1") CLEAR TRY oTest.RaiseException() ?"Next line Exception was handled" CATCH TO oX ?"Exception Caught" ENDTRY DEFINE CLASS TryEndTryTest1 as Custom ADD OBJECT TryMember as TryEndTryMemberTest1 FUNCTION Error(nError as Number ,cMethod as String, nLine as Number) ?"Object definition Exception handled" ENDFUNC FUNCTION RaiseException() this.TryMember.RaiseException() && Has exception Handled in outer Try block ENDFUNC ENDDEFINE DEFINE CLASS TryEndTryMemberTest1 as Custom FUNCTION Error(nError as Number ,cMethod as String, nLine as Number) ?"Member Object Exception handled" TRY THROW ENDTRY ENDFUNC FUNCTION RaiseException() SELECT PDQ && Handled in Outer Try block ENDFUNC ENDDEFINE