-
The first <trace> element generates the message before outer scope.
-
The first <scope> element starts the outer scope.
-
The next <trace> element generates the message in outer scope, before inner scope.
-
The second <scope> element starts the inner scope.
-
The next <trace> element generates the message in inner scope, before assign.
-
The <assign> element tries to evaluate the expression 1/0. This attempt produces a divide-by-zero system error.
-
Control now goes to the <faulthandlers> defined within the inner <scope>. This <scope> rectangle includes a horizontal dashed line across the middle; the area below this dashed line displays the contents of the <faulthandlers> element. In this case, a <catch> exists, but its fault value does not match the thrown fault. There is no <catchall> in the inner scope.
Note that InterSystems IRIS skips the <trace> element that is immediately after <assign>.
-
Control now goes to the <faulthandlers> block in the outer <scope>. No <catch> matches the fault, but there is a <catchall> block. Control goes to this <catchall>.
If we drill into this <catchall>, we see this:
-
Within this <catchall>, the <trace> element generates the message in outer scope, catchall.
-
The outer <scope> ends.
-
The last <trace> element generates the message after outer scope.