Try OpenEdge Now
skip to main content
Error Handling
Raising errors with THROW : THROW as a default for blocks : Determining error-handling characteristics of r-code : XREF and XREF-XML output
 
XREF and XREF-XML output
If a file compiled with the XREF option is subject to block-level or routine-level UNDO, THROW behavior, the XREF output includes one of the following lines:
<compile file_name> <file_name> <line #> ROUTINE-LEVEL ON ERROR UNDO, THROW
<compile file_name> <file_name> <line #> BLOCK-LEVEL ON ERROR UNDO, THROW
The line, if present, is usually the first line in the listing for the applicable file, and in all cases is near the top of the listing.
Similarly, if the file is compiled with the XREF-XML option, the XML output includes an entry like the following ("BLOCK-LEVEL" replaces "ROUTINE-LEVEL" as appropriate):
<Reference Reference-type="ROUTINE-LEVEL" Object-identifier="">
<Source-guid>xX6qZFj+b6fhERbFDfGViA</Source-guid>
<File-num>1</File-num>
<Ref-seq>3</Ref-seq>
<Line-num>1</Line-num>
<Object-context>ON ERROR UNDO, THROW</Object-context>
<Access-mode/>
<Data-member-ref/>
<Temp-ref/>
<Detail/>
<Is-static>false</Is-static>
<Is-abstract>false</Is-abstract>
</Reference>
Note: Where neither the block-level nor the routine-level directive is in effect, no explicit corresponding entry appears in the output. If the source file contains both statements, both corresponding entries appear in the output, even though the AVM ignores the routine-level statement.