An alternative is to maintain a table for each
function/method that contains the instruction pointer ranges
for each exception handler block.
-
When an exception is encountered, the runtime system
searches the table using the current instruction pointer as
the key. It will find the address of a handler block to
use.
-
If an handler block does not handle an exception, then the
runtime system begins again with the address of the failed
handler.