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() SELECT XYZ && Handled in Error Method 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 ENDTRY ENDFUNC ENDDEFINE>>The error method of an object (or if it’s an object member, it’s containing class) takes precedence over try/catch because classes are meant to be encapsulated. If a class designer were to write code with its own error method to achieve a particular behavior, a user of that class should not be able to break the class behavior simply by using a TRY/CATCH in the client code.