PHP捕捉异常中断的方法


Posted in Javascript onOctober 24, 2016

前言

任何程序员在开发时都可能遇到过一些失误,或其他原因造成错误的发生。当然,用户如果不愿意或不遵循应用程序的约束,也会在使用时引起一些错误发生。本文主要介绍在php中用 register_shutdown_function进行异常处理的方法,有需要的可以一起学习学习。

实例详解

比如判断一个脚本是否执行完成,可以设置一个属性为 false,在执行完成时设为 true,最后通过 register_shutdown_function 函数指定的方法进行判断,并做进一步异常处理,如代码所示:

class IndexController extends Controller
{
  /**
   * 脚本执行是否完成
   * @var bool
   */
  protected $complete = false;
 
  public function __construct()
  {
    register_shutdown_function([$this, 'shutdown']);
  }
 
  /**
   * 异常处理
   */
  public function shutdown()
  {
    if ($this->complete === false) {
      dump('www.tanteng.me'); //此处应该输出日志并进行异常处理操作
    }
  }
}

这样一来,可以快速定位脚本是否中断,通过 register_shutdown_function 处理异常并提高程序的健壮性,并且可以记录程序中断的状态,方便通过日志快速定位问题。

register_shutdown_function 执行机制

PHP 把要调用的函数调入内存。当页面所有 PHP 语句都执行完成时,再调用此函数。注意,在这个时候从内存中调用,不是从 PHP 页面中调用,所以如果有路径信息,应使用绝对路径,因为 PHP 已经当原来的页面不存在了。就没有什么相对路径可言。

可以这样理解调用条件:

      1、当页面被用户强制停止时

      2、当程序代码运行超时时

      3、当PHP代码执行完成时

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者使用PHP能有所帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
js继承 Base类的源码解析
Dec 30 Javascript
jquery 跨域访问问题解决方法(笔记)
Jun 08 Javascript
iframe 上下滚动条如何默认在下方实现原理
Dec 10 Javascript
JQUERY 设置SELECT选中项代码
Feb 07 Javascript
使用jQuery Ajax 请求webservice来实现更简练的Ajax
Aug 04 Javascript
BootStrap中Table分页插件使用详解
Oct 09 Javascript
jQuery插件HighCharts实现的2D条状图效果示例【附demo源码下载】
Mar 15 Javascript
Vue官方文档梳理之全局配置
Nov 22 Javascript
微信小程序wx:for循环的实例详解
Oct 07 Javascript
在微信小程序中保存网络图片
Feb 12 Javascript
使用webpack/gulp构建TypeScript项目的方法示例
Dec 18 Javascript
webpack+vue-cil 中proxyTable配置接口地址代理操作
Jul 18 Javascript
angularJs关于指令的一些冷门属性详解
Oct 24 #Javascript
浅谈Angular中ngModel的$render
Oct 24 #Javascript
Javascript vue.js表格分页,ajax异步加载数据
Oct 24 #Javascript
H5移动端适配 Flexible方案
Oct 24 #Javascript
javascript的document中的动态添加标签实现方法
Oct 24 #Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
Oct 24 #Javascript
利用JS实现点击按钮后图片自动切换的简单方法
Oct 24 #Javascript
You might like
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
cakephp2.X多表联合查询join及使用分页查询的方法
2017/02/23 PHP
解决在laravel中auth建立时候遇到的问题
2019/10/15 PHP
Track Image Loading效果代码分析
2007/08/13 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
JS中的数组的sort方法使用示例
2014/01/22 Javascript
Javascript核心读书有感之语言核心
2015/02/01 Javascript
js控制网页背景音乐播放与停止的方法
2015/02/06 Javascript
jQuery+PHP实现动态数字展示特效
2015/03/14 Javascript
jQuery标签编辑插件Tagit使用指南
2015/04/21 Javascript
jQuery实现在列表的首行添加数据
2015/05/19 Javascript
基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)
2015/12/29 Javascript
Bootstrap Paginator分页插件使用方法详解
2016/05/30 Javascript
微信小程序点击列表跳转到对应详情页过程解析
2019/09/26 Javascript
详解Typescript里的This的使用方法
2021/01/08 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
python使用递归解决全排列数字示例
2014/02/11 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
解决pandas 作图无法显示中文的问题
2018/05/24 Python
使用Python制作表情包实现换脸功能
2019/07/19 Python
pytorch实现线性拟合方式
2020/01/15 Python
pytorch实现建立自己的数据集(以mnist为例)
2020/01/18 Python
Python实现括号匹配方法详解
2020/02/10 Python
python字典与json转换的方法总结
2020/12/28 Python
Html5跳转到APP指定页面的实现
2020/01/14 HTML / CSS
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
介绍一下常见的木马种类
2014/11/15 面试题
应届生英语教师求职信
2013/11/05 职场文书
临床医师专业个人自我评价范文
2013/11/07 职场文书
管理学专业个人求职信范文
2013/12/13 职场文书
母亲节感恩活动记录
2014/03/16 职场文书
校园文化标语
2014/06/18 职场文书
个人贷款收入证明
2014/10/26 职场文书
2015年度信用社工作总结
2015/05/04 职场文书
关于分班的感言
2015/08/04 职场文书
心理健康教育主题班会
2015/08/13 职场文书