PHP捕获Fatal error错误的方法
Fatal error 一般是不需要捕获的, 但是在一个复杂的程序中, 如果偶然出现内存不足导致fatal error就难以处理了.
比如. fatal error 出在MySQL类中fetch的时候. 这个时候就很难定位到真正问题所在了.
PHP异常处理中 可以通过set_error_handler来捕获. 但是却只能捕获 NOTICE/WARNING级别的错误, 对于E_ERROR是无能为力的.
register_shutdown_function 能解决set_error_handler的不足.
通过此函数注册好程序结束回调函数, 就可以捕获平时捕获不到的错误了. 再通过 error_get_last 对错误进行判断. 就容易找出难以定位的问题了.
function shutdown_function()
{
$e = error_get_last();
print_r($e);
}
register_shutdown_function('shutdown_function');
相关推荐
-
Windows平台的 PHP 报错 Fatal error: Class COM not found in 的解决方法
在 Win Server 08 往上搭载的 IIS 跑 php 性能提升不少,但还是觉得不太舒服... 某日在调试一个win上的php生产环境时,一段php代码返回了错误: Fatal error: Class 'COM' not found in XXXXXXXXX 没发现 COM 类,php代码主要是调用一些系统的信息,初想应该是php没配置好,在stackoverflow找到答案,是讨论xampp的,要延伸开来,我加了几个要点: ★ php 根目录的 ext 文件夹下确保存有 php_co
-
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
本文实例讲述了php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法.分享给大家供大家参考.具体如下: ZipArchive是php自带的一个压缩与解压缩函数了,今天理所当然的情况中使用new ZipArchive来创建zip文件时碰到提示Fatal error: Class ZipArchive not found in错误,感兴趣的朋友就一起来看看解决方法. 测试代码如下: 复制代码 代码如下: //PHP解压缩文件(
-
php运行提示:Fatal error Allowed memory size内存不足的解决方法
本文实例讲述了php运行提示:Fatal error Allowed memory size内存不足的解决方法.分享给大家供大家参考.具体方法如下: 有些朋友新配置的环境或自己新写的程序运行时会碰到fatal error: Allowed memory size of 134217728 bytes exhausted错误,这种问题一个是程序写得不好导致的,另一个是环境配置不好也会出现,像php5.1.27+apache2.2.3好像在windows2003中就会出现bug不管你怎么修复都无法解
-
PHP中使用register_shutdown_function函数截获fatal error示例
我们在做项目时,偶尔会因为不谨慎而出现fatal error.如果display_errors设置成off,那用户将会看到的是一个空白的页面.若设置成了on,那fatal error的信息将会呈现出来(当然正常的人都不会这样干). 那我们有什么方法可以提前截获到fatal error,并用我们自己自定义的友好形式反馈给用户呢.PHP中有一个叫做 register_shutdown_function 的函数,可以让我们设置一个当执行关闭时可以被调用的另一个函数.也就是说当我们的脚本执行完成或意外
-
解决fatal:remote error:You can't push to git://github.com/username/*.git问题的办法
解决fatal:remote error:You can't push to git://github.com/username/*.git问题的办法 今天Git push的时候 fatal:remote error: You can't push to git://github.com/username/*.git Use git@github.com:username/*.git 看来我是没有权限push啊. 解决方法: git remote rm origin git remote add
-
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
今天要用php代码来处理一个580M的日志文件,总共有219万多行记录,因为是.log的文件,在windows下面很难将文件按照条数来分割,于是在linux下用split -l 10000 filename 前缀名 将整个文件按10000行一个分割成了200多个小文件,之后用php来循环处理这200多个文件,可是执行到后来就出现了题目上面的错误: 复制代码 代码如下: Fatal error: Allowed memory size of 134217728 bytes exhausted (t
-
ThinkPHP提示错误Fatal error: Allowed memory size的解决方法
本文实例讲述了ThinkPHP提示错误Fatal error: Allowed memory size的解决方法.分享给大家供大家参考.具体分析如下: 如果你的ThinkPHP提示你:致命错误(Fatal error: Allowed memory size),根据网上说的提高服务器可使用内存,我觉得都不是好的解决办法.麻烦也没必要.因为这是ThinkPHP本身存在BUG. 错误提示:Fatal error: Allowed memory size of 1073741824 bytes exh
-
PHP中Fatal error session_start()错误解决步骤
错误信息: Fatal error: session_start() [function.session-start]: Failed to initialize storage module: files (path: ) in C:\usr\phpMyAdmin\libraries\session.inc.php on line 75 I.更改服务器配置: 1.检查error.log(Apache2.2\logs)文件,查看是否有错误报告.未发现. 2.检查php.ini中的session.
-
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
解决分析: 这个错误是说你的php 执行时间越过了配置文件中设置的最大执行时间30秒钟,这不是你的程序本身存在的问题,而 是系统的配置文件问题,如果你的网速快的话,可能再执行一次就不会出现这种错误了,不过 有了出现这种问题也可以进行一定的修改 方法有三种: 1.修改php的配置文件,找到php.ini文件,它一般应该放在你的C:\WINDOWS目录下,然后找到 max_execution_time = 30 ;//设置成你想要的值,单位是秒, 这一行,这就是设置的执行时间最大值为30秒,你可以对
-
Fatal: the Postfix mail system is already running 解决办法
Fatal: the Postfix mail system is already running 的解决方案 [问题情境] 当启动postfix服务时出现如下错误提示: # service postfix start Starting Postfix Mail Transport Agent: postfixpostfix/postfix-script: fatal: the Postfix mail system is already running failed! 此外,postfix的s
随机推荐
- Swift 3.0 enum 的灵活使用介绍
- Python查询阿里巴巴关键字排名的方法
- python根据出生年份简单计算生肖的方法
- jQuery通过ajax方法获取json数据不执行success的原因及解决方法
- 星外虚拟主机平台国内五大域名接口设置方法
- java使用计算md5校验码方式比较两个文件是否相同
- JavaScript 匿名函数和闭包介绍
- DiscuzNT 论坛与主站的同步登录与退出
- php的一个简单加密解密代码
- php中simplexml_load_string使用实例分享
- Android中XML的基本操作(增、删、改、查)
- c#中XML解析文件出错解决方法
- Android 定时器实现图片的变换
- 详解IOS中GCD的使用
- 用asp实现无组件生成验证码的方法2种
- 使用CSS和jQuery模拟select并附提交后取得数据的代码
- IIS应用程序池自动停止 关闭 假死 处理集锦
- 积分获取和消费的存储过程学习示例
- jQuery基础教程笔记适合js新手第1/2页
- jquery 动态合并单元格的实现方法