PHP 错误抛出及自定义处理

  • 定义

php中的错误抛出及自定义处理指的是允许我们自定义抛出错误并且捕捉错误并进行处理。类似于

面向对象语言中的throw 及 try...catch...

在php中主要由以下三个函数来完成抛出以及捕捉处理.

trigger_error()set_exception_handler()set_error_handle()
  • trigger 简介
    在php中,trigger函数可以触发任一用户级别的错误,在非面向对象编程中,可以做为一种错误提示的方式。

例如:我们编写一个e($n)的函数,而参数必须是一个整数,否则触发错误

/*** @param $n*/
function e($n)
{if (!is_int($n)) {trigger_error("n is not a number", E_USER_NOTICE);}
}

运行结果如下:

  • 捕捉错误OR异常(摘自PHP官方文档)

function myErrorHandler($errno, $errstr, $errfile, $errline)
{if (!(error_reporting() & $errno)) {// This error code is not included in error_reportingreturn;}switch ($errno) {case E_USER_ERROR:echo "<b>My ERROR</b> [$errno] $errstr<br />\n";echo "  Fatal error on line $errline in file $errfile";echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";echo "Aborting...<br />\n";exit(1);break;case E_USER_WARNING:echo "<b>My WARNING</b> [$errno] $errstr<br />\n";break;case E_USER_NOTICE:echo "<b>My NOTICE</b> [$errno] $errstr<br />\n";break;default:echo "Unknown error type: [$errno] $errstr<br />\n";break;}/* Don't execute PHP internal error handler */return true;
}

PHP 错误抛出及自定义处理相关推荐

  1. 异常处理—错误抛出机制

    错误抛出机制:   把可能出现异常的代码写在try{}里,使用catch(){}设置一些异常陷阱来捕获异常.例如: 没有异常处理时异常的抛出机制:   为什么出现异常会在控制台上显示打印红色的异常呢? ...

  2. linux重定向输出时加时间变量,shell 重定向错误输出到文件 加上时间(标明错误抛出的时间)...

    在开发中,我们避免不了写crontab脚本来异步执行一些东西,一般设置crontab用下面的方法: */1 * * * * commond > /tmp/t.log 2>&1 前面 ...

  3. koa --- 使用中间件多层级抛出错误

    说明 能够熟练的掌握错误的抛出,可以在一定程度上提高代码的开发效率和可读性 构造错误 本栗采用调用一个不存在的函数来抛出错误 const Koa = require('koa'); const app ...

  4. cocos2d-x 错误异常抛出捕获和崩溃拦截

    Error对象 一旦代码解析或运行时发生错误,JavaScript引擎就会自动产生并抛出一个Error对象的实例,然后整个程序就中断在发生错误的地方. Error对象的实例有三个最基本的属性: nam ...

  5. 如何友好的处理 WebApi 中抛出的错误

    微软的 ASP.NET Web API 是一个轻量级的web框架,可用来构建基于 http 无状态的rest服务,异常是一种运行时错误,异常处理是一种处理运行时错误的技术,每一个开发者都应该知道如何处 ...

  6. [转贴] 从零开始学C++之异常(二):程序错误、异常(语法、抛出、捕获、传播)、栈展开...

    一.程序错误 编译错误,即语法错误.程序就无法被生成运行代码. 运行时错误 不可预料的逻辑错误 可以预料的运行异常 例如: 动态分配空间时可能不会成功 打开文件可能会失败 除法运算时分母可能为0 整数 ...

  7. php7异常抛出的好处,PHP7的错误与异常

    一.PHP7异常结构 1.从 PHP7开始,将Error与Exception两条体系,都实现了统一的Throwable接口. PHP7中的异常层次 Throwable 接口 2.PHP7改变之前版本的 ...

  8. swift 抛出错误_Swift错误处理– Swift尝试,捕捉,抛出

    swift 抛出错误 Swift error handling is a very important aspect of writing better code. Swift try stateme ...

  9. springBoot 在过滤器中如何捕获抛出的异常并自定义返回信息

    一般springBoot自带的全局异常捕获机制都是在业务层发生的异常来进行捕获的,因为过滤器的执行顺序是在全局异常机制启动之前执行的,所以一旦过滤器中发生异常,全局异常捕获机制无法使用 现在有一个围魏 ...

最新文章

  1. NLP 注意力机制总结言简意赅的
  2. 前沿报告|AI系列报告之:智能计算芯片
  3. Strict Mode (JavaScript)
  4. Property ‘configuration‘ and ‘configLocation‘ can not specified with together
  5. linux下使用idl生成h文件,LINIUX下IDL的安装
  6. csharp添加引用路径_(2)添加path
  7. 联想电脑计算机怎么设置十进制,如何在win10系统中设置电池充电阈值
  8. 涨价潮或延续至下半年 芯片国产化遇机遇
  9. 在Zephyr上使用malloc/new
  10. linux线程的理解,linux线程与进程的理解
  11. android接口类命名规范_Android开发规范
  12. Java clone() 浅拷贝 深拷贝
  13. JCR分区和中科院分区的区别
  14. Java IO流(精简版)
  15. 如何禁止某个程序修改计算机,电脑如何禁止某个程序运行?
  16. html项目答辩ppt范文,论文答辩ppt 论文ppt答辩模板|论文答辩ppt范文6页
  17. python openpyxl冻结首行单元格
  18. 内网ip如何传输文件
  19. 使用Python开发一个恐龙跳跳小游戏,玩起来
  20. 原创 | SpringBoot版本竟然引发这种问题,让我吐血三升!

热门文章

  1. 强大:MyBatis 流式查询
  2. 星巴克不使用两阶段提交
  3. Spring Boot 中的 RestTemplate不好用?试试 Retrofit !
  4. 肝一下ZooKeeper实现分布式锁的方案,附带实例!
  5. 彻底理解cookie,session,token
  6. 机器学习中的L1与L2正则化图解!
  7. 深入浅出卷积神经网络及实现!
  8. 笑不活了!院士带领课题组硕博“整活”,科研版「苦行僧」火出圈!
  9. 用漫画了解 Linux 内核到底长啥样
  10. 2020各省份大学排名出炉!