本文介绍PHP的异常,错误以及如何屏蔽错误。 可以直接使用 用户自定义的错误处理 使用函数捕获系统不提示的错误 注意(Notices)这些都是比较小而且不严重的错误,比如去访问一个未被定义的变量。通常,这类的错误是不提示给用户的,但有时这些错误会影响到运行的结果。 ** 警告(Warnings)**这就是稍微严重一些的错误了,比如想要包含include()一个本身不存在的文件。这样的错误信息会提示给用户,但不会导致程序终止运行。 致命错误(Fatal errors)这些就是严重的错误,比如你想要初始化一个根本不存在的类的对象,或调用一个不存在的函数,这些错误会导致程序停止运行,PHP也会把这些错误展现给用户。 方法一:在有可能出错的函数前加 方法二:编辑php.ini ,查找"display_errors =" ,将“=”后面的值改为"off。 总结,异常和错误处理现在还不会应用。
参考:
php异常、错误处理机制、set_exception_handler
函数捕获throw
抛出的异常<?php//设置一个用户的函数(error)来处理脚本中出现的错误。//set_exception_handler()会自动捕捉错误set_exception_handler('exception1');throw new Exception("kkkkkkkkkkkkkkkk");function exception1(Exception $exception){ echo $exception->getMessage();
}?>
错误
<?phpset_error_handler('errorHandler');
trigger_error("这里描述错误",E_USER_ERROR);//E_USER_ERROR:该error 所特定的错误类型,默认是E_USER_NOTICEfunction errorHandler($errno,$errstr){//用户的函数需要接受两个参数:错误码和描述错误的 string
if($errno==E_USER_ERROR){
echo "错误为:",$errstr.'<br>';
}
}?>
前几个都不知如何使用,如果使用这个可以在变量未定义就调用时提示错误<?phpset_error_handler('errorHandler2');
echo $ccc;function errorHandler2($errno,$errstr){//用户的函数需要接受两个参数:错误码和描述错误的 string
if($errno==E_NOTICE){//这里应该是如果出现(默认)非用户错误
echo "错误为:",$errstr;
}
}echo "<br>这里正常运行";?>
屏蔽php错误
错误的种类
屏蔽错误的方法
@
,然后or die("")
如: @mysql_connect(...) or die("Database Connect Error")
再例如:<?php
$file=fopen("filename.php", 'r'); //返回Warning: fopen(filename.php): failed to open stream: No such file or directory in E:\xampp\htdocs\php\error-1.php on line 7
@$file=fopen("filename.php", 'r') or die('没有找到该文件'); //返回"没有找到该文件"?>
可以百度有详解,在测试过程中最好不要修改
方法三:在php脚本前加error_reporting(0),屏蔽所有错误提示。其中,error_reporting 配置错误信息回报的等级。
屏蔽错误十分有用且第一种方法最常用。
持续学习中,不定期更新
作者:刘振
链接:https://www.jianshu.com/p/dc7927431017
共同學習,寫下你的評論
評論加載中...
作者其他優質文章