Since PL/I programming languages have technique for handling exceptional situations. Most famous is the setjmp/longjmp in C language. Here is an example, how it is working.
#include <setjmp.h>
#include <stdio.h>
jmp_buf x;
void f()
{
longjmp(x,5);
}
int main()
{
int i = 0;
if ( (i = setjmp(x)) == 0 )
{
f();
}
else
{
switch( i )
{
case 1:
case 2:
default: fprintf( stdout, "error code = %d\n", i); break;
}
}
return 0;
}