Abstract
PHP interpreter is written in C, but uses try/catch construct known from other popular languages. This approach is different from everyday C-like error handling, where it's done by using function return value or by modifying error variable passed as an argument to a function.
zend_try { PG(during_request_startup) = 1; php_output_activate(TSRMLS_C); /* unimportant stuff */ } zend_catch { retval = FAILURE; } zend_end_try();
If one of instructions in a "try" block raises an exception then the evaluation of this block is terminated and execution flow moves to a "catch" block.