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.