前言

任何程序员在开发时都可能遇到过一些失误,或其他原因造成错误的发生。当然,用户如果不愿意或不遵循应用程序的约束,也会在使用时引起一些错误发生。本文主要介绍在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能有所帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

php 中断输出,PHP捕捉异常中断的方法相关推荐

  1. java 线程 异常中断_java多线程并发之旅-19-InterruptedException 中断异常处理及中断机制...

    引言 如果对 Java 中断没有一个全面的了解,可能会误以为被中断的线程将立马退出运行,但事实并非如此. 中断机制是如何工作的?捕获或检测到中断后,是抛出 InterruptedException 还 ...

  2. x86 - 操作系统:中断、陷阱、异常、故障、终止

    系列文章 x86 - CPU架构/寄存器详解 (一)x86.8086.i386.IA-32 是什么? x86 - CPU架构/寄存器详解 (二) 实模式(8086模式) x86 - CPU架构/寄存器 ...

  3. 内中断,外中断,软中断,硬中断,异常,陷阱

    不管是内中断,外中断,软中断还是硬中断都是按照中断源来划分的. 一.外中断 狭义上的中断(interruption)指的就是外中断. 指来自CPU执行指令以外的事件的发生,希望处理机能够向设备发下一个 ...

  4. STC10F10XE定时器中断输出10KHz的方波程序

    //咱做硬件的也动手做点测试程序,为了测试新做的电机驱动板,找了个51的板子当10K信号发生器测试IGBT开关延时时间. #include <STC_NEW_8051.H> #includ ...

  5. webclient 请求期间发生异常_ARM异常中断的原因及处理措施

    当ARM异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执行.当异常中断处理程序执行完成后,程序返回到发生中断指令的下条指令处执 行.在进入异常中断处理程序时,要保存被中断程序的 ...

  6. Oracle JOB异常中断原因分析

    链接:http://blog.itpub.net/28602568/viewspace-1731805/ 标题: Oracle JOB异常中断原因分析 作者:lōττéry©版权所有[文章允许转载,但 ...

  7. ARM体系的异常中断

    在ARM体系中,通常有3种方式控制处理器的流程  1:在正常执行过程中,每执行一条ARM指令,程序计数器寄存器PC的值加四个字节,在每执行一条Thumb指令,程序计数器寄存器PC的值加两个字节,整个过 ...

  8. 【中断】异常和中断的关系、异常向量表和中断向量表的关系

    Linux中断知识汇总: [深入理解Linux内核][中断]内容汇总帖 目录 什么是异常? 什么是中断? 异常和中断的关系 什么是异常向量表? 什么是中断向量表? 异常向量表和中断向量表的关系 什么是 ...

  9. 嵌入式:ARM异常中断指令SWI、BKPT、CLZ详解

    文章目录 SWI 二进制编码 汇编格式 断点指令(BKPT-仅用于v5T体系) 二进制编码 汇编格式 前导0计数 二进制编码 汇编格式 异常中断指令可以分为一下两种: 软件中断指令(SWI) 断点指令 ...

最新文章

  1. Scala 集合入门
  2. rails 添加外键_如何在Rails后端中添加功能强大的搜索引擎
  3. python语法面试题_Python语法面试题
  4. 超市的100年发展史:好日子终结 亚马逊无人店是趋势
  5. (十)Centos之文件搜索命令find
  6. java sharepoint 2010,安装SharePoint2010出现“Could not find stored procedure ‘sp_dboption’.”的解决方法...
  7. Python-sys.argv[]用法
  8. ES5程序设计转ES6 笔记
  9. matplotlib的颜色和控制条
  10. 双向关联一对一映射详解(1)
  11. python压缩教程_无需压缩软件,用python帮你操作压缩包
  12. Codeforces.100633J.Ceizenpok's formula(扩展Lucas)
  13. 公司用的非标普通自动化用单片机还是plc_合格电气自动化工程师必备十大技能...
  14. 运动控制卡应用开发教程之Python
  15. html影院选座模板,jQuery实现影院选座订座效果
  16. 【优化算法】改进的侏儒猫鼬优化算法(IDMO)【含Matlab源码 2314期】
  17. 分享一组漂亮的html5后台登陆模板
  18. win10系统查看组件服务器,如何查看win10电脑DNS服务器地址 win10查看DNS服务器地址的方法...
  19. 简单的前后端交互的案例
  20. 146.个性化推荐系统案例介绍

热门文章

  1. jquery 获取键值对中最大值_jQuery的AJAX发送数据键值对
  2. python高频词_python几万条微博高频词分析
  3. 小程序消息服务器webapi,小程序订阅消息
  4. 6000毫安以上智能手机_展望2021年智能手机市场:这5大技术要爆发
  5. mxnet深度学习(NDArray)
  6. python配置opencv镜像安装
  7. java浮点数四舍五入_Java小程序练习--浮点数的四舍五入
  8. .net core中使用GB2312编码
  9. django的基本操作流程
  10. 斯坦福-随机图模型-week4.0_