1--TEST-- 2Exceptions before fatal error 3--FILE-- 4<?php 5function exception_error_handler($code, $msg) { 6 throw new Exception($msg); 7} 8 9set_error_handler("exception_error_handler"); 10 11try { 12 $foo->a(); 13} catch(Throwable $e) { 14 var_dump($e->getMessage()); 15} 16 17try { 18 new $foo(); 19} catch(Throwable $e) { 20 var_dump($e->getMessage()); 21} 22 23try { 24 throw $foo; 25} catch(Throwable $e) { 26 var_dump($e->getMessage()); 27} 28 29try { 30 $foo(); 31} catch(Throwable $e) { 32 var_dump($e->getMessage()); 33} 34 35try { 36 $foo::b(); 37} catch(Throwable $e) { 38 var_dump($e->getMessage()); 39} 40 41 42try { 43 $b = clone $foo; 44} catch(Throwable $e) { 45 var_dump($e->getMessage()); 46} 47 48class b { 49} 50 51try { 52 b::$foo(); 53} catch(Throwable $e) { 54 var_dump($e->getMessage()); 55} 56?> 57--EXPECT-- 58string(23) "Undefined variable $foo" 59string(23) "Undefined variable $foo" 60string(23) "Undefined variable $foo" 61string(23) "Undefined variable $foo" 62string(23) "Undefined variable $foo" 63string(23) "Undefined variable $foo" 64string(23) "Undefined variable $foo" 65