Alexandre Daubois about 2 months ago
#PHP exceptions don't use C setjmp/longjmp anymore since PHP 7.
When an exception is thrown, the engine sets a flag on the execute_data and RETURNS to the VM dispatcher.
The dispatcher checks the flag, walks the try/catch table, finds the matching catch block, and jumps to it.
🧵