PHP-异常处理Exception,及错误日志处理

1、手动抛出一个异常,捕获异常

<?php 
try{
	throw new Exception("Error Processing Request", 1);
}
catch(Exception $e){
	echo $e->getMessage();
}

2、循环打印,追踪异常

<?php 
class  MyCustomException  extends  Exception  {}

function  doStuff () {
    try {
        throw new  InvalidArgumentException ( "You are doing it wrong!" ,  112 );
    } catch( Exception $e ) {
        throw new  MyCustomException ( "Something happend" ,  911 ,  $e );
    }
}

try {
     doStuff ();
} catch( Exception $e ) {
    do {
         printf ( "%s:%d %s (%d) [%s]\n" ,  $e -> getFile (),  $e -> getLine (),  $e -> getMessage (),  $e -> getCode (),  get_class ( $e ));
    } while( $e  =  $e -> getPrevious ());
}
 ?> 

结果是:

D:\WEB\MyTest\index.php:8 Something happend (911) [MyCustomException]
D:\WEB\MyTest\index.php:6 You are doing it wrong! (112) [InvalidArgumentException]

3、错误日志处理

  • debug_print_backtrace() 可以打印出函数调用的整个过程信息
  • error_get_last() 获取错误的详细情况,错误类型,错误内容,错误的文件,及错误的行号
  • error_log() 打印日志到文件中
  • error_reporting() php系统报错的级别
  • set_error_handler();restore_error_handler();用来调用自己的错误处理函数
  • set_exception_handler();restore_exception_handler();用来调用自己的异常处理函数
  • trigger_error() | user_error() 直接触发一个错误,用set_error_handler来接受错误
  • PHP_EOL 可以获取到php的错误


你可能感兴趣的:(PHP-异常处理Exception,及错误日志处理)