1--TEST-- 2ZE2 errors caught as exceptions 3--SKIPIF-- 4<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?> 5--FILE-- 6<?php 7 8class MyException extends Exception { 9 function __construct($_errno, $_errmsg) { 10 $this->errno = $_errno; 11 $this->errmsg = $_errmsg; 12 } 13 14 function getErrno() { 15 return $this->errno; 16 } 17 18 function getErrmsg() { 19 return $this->errmsg; 20 } 21} 22 23function ErrorsToExceptions($errno, $errmsg) { 24 throw new MyException($errno, $errmsg); 25} 26 27set_error_handler("ErrorsToExceptions"); 28 29// make sure it isn't catching exceptions that weren't 30// thrown... 31 32try { 33} catch (MyException $exception) { 34 echo "There was an exception: " . $exception->getErrno() . ", '" . $exception->getErrmsg() . "'\n"; 35} 36 37try { 38 trigger_error("I will become an exception", E_USER_ERROR); 39} catch (MyException $exception) { 40 echo "There was an exception: " . $exception->getErrno() . ", '" . $exception->getErrmsg() . "'\n"; 41} 42 43?> 44--EXPECT-- 45There was an exception: 256, 'I will become an exception' 46