error_reporting(1048);
class ErrorHandlers extends Exception{
 private $_context = null;
 function __construct($level, $string, $file, $line, $context=null){ 
 parent::__construct($string,$level); 
 $this->file = $file; 
 $this->line = $line; 
 $this->_level = $level; 
 $this->_context = $context;
 }
 function __destruct(){
// parent::__destruct();
 }
 function Message(){
 $errors = array(
 E_ERROR => 'error',
 E_WARNING => 'warning',
 E_PARSE => 'parsing error',
 E_NOTICE => 'notice',
 E_CORE_ERROR => 'core error',
 E_CORE_WARNING => 'core warning',
 E_COMPILE_ERROR => 'compile error',
 E_COMPILE_WARNING => 'compile warning',
 E_USER_ERROR => 'user error',
 E_USER_WARNING => 'user warning',
 E_USER_NOTICE => 'user notice'
 ); 
 $str = $errors[parent::getCode()].': '.parent::getMessage().' 在 '.parent::getFile().
 ' 的第 '.parent::getLine()."行\n" ;
 if($this->_level==E_USER_ERROR){
 $str .= ('
致命错误');
 }
 echo('
');
 echo($str);
 echo('
');
 }
 }
function error_handler($errno,$errstr,$errorfile,$errline,$errtext){
 throw new ErrorHandlers($errno,$errstr,$errorfile,$errline,$errtext);
}
function exception_handler(Exception $e)
{ 
 $errors = array(
 E_ERROR => 'error',
 E_WARNING => 'warning',
 E_PARSE => 'parsing error',
 E_NOTICE => 'notice',
 E_CORE_ERROR => 'core error',
 E_CORE_WARNING => 'core warning',
 E_COMPILE_ERROR => 'compile error',
 E_COMPILE_WARNING => 'compile warning',
 E_USER_ERROR => 'user error',
 E_USER_WARNING => 'user warning',
 E_USER_NOTICE => 'user notice'); 
 echo $errors[$e->getCode()].': '.$e->getMessage().'在'.$e->getFile().
 '的第'.$e->getLine()."行\n";
 echo $e->getMessage();
 die();
}
//
set_error_handler('error_handler');
//restore_error_handler();
set_exception_handler('exception_handler');
//restore_exception_handler();
我肯定是错误
?>
执行结果:
notice: Use of undefined constant 我肯定是错误 - assumed '我肯定是错误'在E:\web\web\php\bi\exception\m.php的第74行 Use of undefined constant 我肯定是错误 - assumed '我肯定是错误'

 另外,在类中,还可以这样:
 function trigger_error($error_msg, $error_type = E_USER_WARNING)
 {
 trigger_error(" error: $error_msg", $error_type);
 }
 著名的Smarty就是这么做的.