The "error handling" feature is a particular use of nonlocal GOTO plus a LABEL data type. It may be more efficient than an exception, because a label value includes its stack frame, while an exception must check whether the exception is handled in each frame as the stack is unwound.
On the downside, label variables entail the danger of jumping to an uninitialized or dead label value. This is a counterexample to another comment's claim that PL/I is a "safe" language.
On the downside, label variables entail the danger of jumping to an uninitialized or dead label value. This is a counterexample to another comment's claim that PL/I is a "safe" language.