
PHP在开发过程中,如果不使用提示,那么你会发现写完的代码可以完全不可以用。在哪里出现了问题都不知道,所以使用错误提示,是你开发的最好的伴侣。
1、设置错误报告及设置级别.
错误报告级别:指定了在什么情况下,脚本代码中的错误(这里的错误是广义的错误,包括E_NOTICE注意、E_WARNING警告、E_ERROR致命错误等)会以错误报告的形式输出。
想要开启错误提示:需要在php.ini中设定
display_errors = On
开启状态下,若出现错误,则报错,出现错误提示
关闭状态下,若出现错误,则提示:服务器错误。但是不会出现错误提示
error_reporting = E_ALL
代表提示所有错误,上面注释里写的比较详细了,可以只提示一部分的错误信息
2、开启错误日志
log_errors = On
在正式环境下用这个就行了,把错误信息记录在日志里。正好可以关闭错误回显。
当然可以使用ini_set函数和error_reporting函数
ini_set( 'display_error' , 1 );
error_reporting( E_ALL );
对于PHP开发人员来说,一旦某个产品投入使用,那么第一件事就是应该将display_errors选项关闭,以免因为这些错误所透露的路径、数据库连接、数据表等信息而遭到黑客攻击。
错误日志保存位置 : yerror_log = “/Applications/MAMP/logs/php_error.log”
syslog表示系统日志, 有些集成环境的错误日志是保存在Apache错误日志里的
3、PHP异常处理
PHP的异常体系是非常简单的,并没有很多用到异常的地方,跟Java一致都是使用throw可以抛出异常,自定义的异常类需要继承父类Exception
//自定义异常类 ( 该类必须是 exception 类的子类 )
class cwj95 extends Exception{
public function errorMessage()
{
return $this->getMessage();
}
}
//设置顶层异常处理器 (Top Level Exception Handler)
function myException($exception)
{
echo "Exception: " , $exception->getMessage();
}
set_exception_handler('myException'); // 函数可设置处理所有未捕获异常的用户定义函数。
如果异常没有被捕获,而且又没用使用 set_exception_handler() 作相应的处理的话,那么将发生一个严重的错误(致命错误),并且输出 “Uncaught Exception” (未捕获异常)的错误消息。
异常的规则
- 需要进行异常处理的代码应该放入 try 代码块内,以便捕获潜在的异常。
- 每个 try 或 throw 代码块必须至少拥有一个对应的 catch 代码块。
- 使用多个 catch 代码块可以捕获不同种类的异常。
- 可以在 try 代码块内的 catch 代码块中再次抛出(re-thrown)异常。
原创文章转载请注明:转载自:PHP错误及异常学习
发表评论
沙发空缺中,还不快抢~