php错误与异常

php的错误和异常处理机制 php的错误和异常处理机制。1、php错误分类;2、error_reporting、display_errors、log_errors、log_errors_max_len、error_log等配置;3、set_error_handler的使用;4、set_exception_handler 的使用;5、用trigger_error触发错误;6、捕获异常try/catch/finally的使用方式 阅读详情

php错误与异常

set_error_handler()和trigger_error()

  • E_ERROR、E_PARSE、E_CORE_ERROR、E_CORE_WARNING、 E_COMPILE_ERROR、E_COMPILE_WARNING是不会被这个句柄处理的,也就是会用最原始的方式显示出来。不过出现这
    些错误都是编 译或PHP内核出错,在通常情况下不会发生。

  • 使用set_error_handler()后,error_reporting ()将会失效。也就是所有的错误(除上述的错误)都会交给自定义的函数处理。

  • 如果使用该函数,会绕过标准 PHP 错误处理程序,同时如果必要,用户定义错误程序通过 die() 终止脚本。

  • 如果错误发生在脚本执行之前(比如文件上传时),将不会调用自定义的错误处理程序因为它尚未在那时注册

自定义错误处理

Demo:

//自定义错误处理
//自定义的错误处理函数一定要有这4个输入变量$errno,$errstr,$errfile,$errline,否则无效。
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
    $errfile = str_replace(getcwd(), '', $errfile);
    $errstr  = str_replace(getcwd(), '', $errstr);
    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";
            //遇到Error级错误时退出脚本
            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;
    }
    return true;
}
    $link_id = @mysql_pconnect("localhost:3333","root","password");
    //接管错误处理
    set_error_handler('myErrorHandler');
    if (!$link_id) 
    {
//产生一条用户级别的错误
        trigger_error("出错了", E_USER_ERROR);
    }

set_exception_handler()

自定义捕获未被捕获的异常

提示:在这个异常处理程序被调用后,脚本会停止执行。
Demo:

// 用户定义的异常处理函数
function myException($exception) {
    echo "<b>Exception:</b> ", $exception->getMessage();
}
// 设置用户定义的异常处理函数
set_exception_handler("myException");
// 抛出异常
throw new Exception("我没有被捕获");

php捕获异常中断方法register_shutdown_function()

Demo:

$clean = false;
function shutdown_func(){
    global $clean;
    if (!$clean){
        die("not a clean shutdown");
    }
    return false;
}
register_shutdown_function("shutdown_func");
$a = 1;
$a = new FooClass(); // 将因为致命错误而失败
$clean = true;

请关注我的订阅号

订阅号.png

ajax接口请求成功后走的error函数,提示信息中textStatus 报错为 parsererror问题 问题原因: 类型的问题,也就是说可能是返回类型出问题了 XMLHTTPRequest对象是基于XML的HTTP请求。XMLHTTPRequest是一个浏览器接口,使得Javascript可以进行HTTP(S)通信。自从浏览器提供有了XMLHTTPRequest这个接口之后,ajax操作就此诞生。 AJAX = Asynchronous JavaScript and XML,翻译为:异步的 JavaScript 和 XML。ajax就是基于浏览器提供的XMLHttpRequest对象来实现的。传统的网页(不 阅读详情

相关推荐

对比学习(contrastive learning)

什么是自监督学习? 举个通俗的例子:即使不记得物体究竟是什么样子,我们也可以在野外识别物体。 我们通过记住高阶特征并忽略微观层面的细节来做到这一点。那么,现在的问题是,我们能否构建不关注像素级细节,只编码足以区分不同对象的高阶特征的表示学习算法?通过对比学习,研究人员正试图解决这个问题。 什么是对比学习? 对比学习是一种自监督学习方法,用于在没有标签的情况下,通过让模型学习哪些数据点相似或不同来学习数据集的一般特征。 让我们从一个简单的例子开始。想象一下,你是一个试图理解世界的新生婴儿。在家里,假设你有两只

cziun的博客 11万+

微信ajax请求error,微信的h5页面 ajax 请求后 一直走error

手机端 请求请求发送后台 请求参数后台接受到了,而且返回参数发送了,但是ajax一直在走error而不是success1.url地址是对的2.返回参数是json格式3.参数后台接收到了并且参数正确4.XMLHttpRequest.status=0,XMLHttpRequest.readyState=0,textStatus=error$.ajax({async: false,cache: fals...

weixin_39799646的博客 957

【实战指南】OpenClaw 使用 Bird Skill 接入 X(Twitter)的终极省心方案:告别每次都要手动喂 Cookie 的痛苦

OpenClaw 使用 Bird Skill 接入 X(Twitter)的终极省心方案:告别每次都要手动喂 Cookie 的痛苦

hampeter的博客 1799

ajax textstatus,AJAX的textStatus的值为error

$(document).ready(function() {var myDate = new Date();var myMonth = myDate.getMonth();var myDate = myDate.getDate();var myJSON = $.ajax({type: 'get',url: 'http://api.juheapi.com/japi/toh?key=80e392fb7...

weixin_39974400的博客 783

【SAP PO】SAP PO 接口配置完整教程之二REST服务对接

SAP PO 接口配置完整教程之二REST服务对接

XLevon的博客 1万+

C8T6和ZET6选型更换过程中出现.\Obj\Project.sct(7): error: L6235E: More than one section matches selector - cann

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、问题原因二、解决方法三、现象总结 前言 又一件离谱的事情发生了,我之前转换过程中没有发生的错误,今天拿出来程序重新编译了一下,结果他奶奶滴一个新的错误出现了,而且我还完全不知道是什么原因导致的,先上图: 一、问题原因 之前我已经尝试过更换芯片选型,但是没有出现此类问题,今天更改的时候发现了,我还以为是个偶然错误,结果换来换去,还是有这个问题,那我之前说c8t6的程序更改成zet6上跑只需改芯片选型和宏定义岂不是啪啪打.

wx18045623090的博客 1488

ajax请求报错调试

ajax请求报错调试

行云 1548

Winget安装失败:深入解析InternetOpenUrl()错误0x80072efd的根源与修复

本文深入解析了使用Winget时遇到的InternetOpenUrl()错误0x80072efd。该错误通常源于DNS解析失败、网络代理配置不当或系统安全策略冲突,导致无法连接软件源。文章提供了从刷新DNS、修改Hosts文件到配置代理等一套完整的诊断与修复方案,帮助开发者快速解决安装障碍,恢复Winget的正常使用。

weixin_29290259的博客 931

php 错误 异常,PHP 错误与异常

PHP错误级别Parse error > Fatal Error > Waning > Notice > DeprecatedDeprecated 最低级别的错误(不推荐,不建议)使用一些过期函数的时候会出现,程序继续执行Notice 通知级别的错误使用一些未定义变量、常量或者数组key没有加引号的时候会出现,程序继续执行Waning 警告级别的错误程序出问题了,需要修改代...

weixin_30783611的博客 219

从入门到实战:rkhunter(Rootkit猎手)在Linux服务器安全运维中的部署与自动化监控

本文详细介绍了rkhunter(Rootkit猎手)在Linux服务器安全运维中的部署与自动化监控方法。从Rootkit的危害性入手,讲解了rkhunter的安装、配置及实战应用,包括如何建立基准、优化定时任务方案以及智能告警处理。通过多级过滤脚本和系统级联动,帮助运维人员高效识别和应对Rootkit威胁,提升服务器安全性。

weixin_28715953的博客 237

Android性能分析深度指南:Perfetto工具全面解析

本文深入探讨Android性能优化工具Perfetto的应用与实践。作为Google推出的新一代追踪系统,Perfetto整合了CPU调度、内存分配、电池状态等多维度分析功能,通过高性能数据处理和可视化界面帮助开发者定位性能瓶颈。文章系统介绍了Perfetto的架构原理、配置方法和核心功能,包括CPU性能分析、内存泄漏检测等关键技术。通过电商应用卡顿优化的实战案例,展示了如何利用数学建模(如帧时间公式$T_{\text{render}}\leq16.67\text{ms}$)指导性能调优。

郑伟强dev的专栏 144

【异常和错误】PHP的异常和错误处理【原创】

【异常和错误】PHP的异常和错误处理

一直加班的程序猿 3256

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

php 触发异常,PHP 错误与异常

PHP错误级别Parse error > Fatal Error > Waning > Notice > DeprecatedDeprecated 最低级别的错误(不推荐,不建议)使用一些过期函数的时候会出现,程序继续执行Notice 通知级别的错误使用一些未定义变量、常量或者数组key没有加引号的时候会出现,程序继续执行Waning 警告级别的错误程序出问题了,需要修改代...

weixin_28746223的博客 283

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

PHP基础之错误与异常

在PHP中,默认的错误处理很简单。一条错误消息会被发送到浏览器,这条消息带有文件名、行号以及描述错误的消息。在创建脚本和 Web 应用程序时,错误处理是一个重要的部分。如果代码缺少错误检测编码,那么程序看上去很不专业,也为安全风险敞开了大门。创建一个自定义的错误处理器非常简单。创建了一个专用函数,可以在 PHP 中发生错误时调用该函数。

上善若泪 1573

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

php中的错误和异常捕获

在PHP中,异常(Exceptions)和错误(Errors)是两个不同的概念,尽管它们都与运行时问题有关,但它们有各自的用途和处理方式。

qinshi501的博客 1214

php 错误 异常,php中的异常和错误解析

PHP错误是属于php程序自身的问题,一般是由非法的语法,环境问题导致的,使得编译器无法通过检查甚至无法运行的情况。PHP异常一般是业务逻辑上出现的不合预期、与正常流程不同的状况,不是语法错误。本文介绍了php中异常和错误的相关资料,需要的朋友可以参考下。一、异常与错误异常是指程序运行中不符合预期情况以及与正常流程不同的状况。错误则属于自身问题,是一种非法语法或者环境问题导致的、让编译器无法通过检...

weixin_36215736的博客 434

如何在PHP中处理错误和异常?

本文将详细探讨PHP中处理错误和异常的方法,包括内置的错误处理机制、异常处理机制以及自定义错误和异常处理的方法。该函数会在错误发生时调用自定义的错误处理函数,而不是 PHP 的默认错误处理机制。$e 是捕捉到的异常对象,通过 $e->getMessage() 可以获取异常的消息。使用工具如 Xdebug 进行代码调试,确保在代码发布之前捕捉和修复所有潜在的错误和异常。将错误记录到日志文件中是跟踪和分析错误的有效方法。通过定义自定义异常类,可以为特定类型的错误提供更详细的上下文信息和处理逻辑。

vpnxhj的博客 1547

深入浅出:PHP 错误和异常处理

通过函数,你可以设置自定义的错误处理器。这允许你以更灵活的方式处理不同类型的错误。php$errno// 你可以在这里记录错误日志或采取其他措施 } set_error_handler("customErrorHandler");// 触发一个警告错误 echo $undefined_variable;?$errstr// 你可以在这里记录错误日志或采取其他措施 } set_error_handler("customErrorHandler");

软件架构师笔记 1146

PHP错误与异常处理

个人站点 :http://oldchen.iwulai.com/   一、异常与错误的概述   PHP中什么是异常:   程序在运行中出现不符合预期的情况,允许发生(你也不想让他出现不正常的情况)但他是一种不正常的情况,按照我们的正常逻辑本不该出的错误,但仍然会出现的错误,属于逻辑和业务流程的错误,而不是编译或者语法上的错误。 PHP中什么是错误: 属于php脚本自身的问题,大部分情况...

欢迎交流PHP和前端知识QQ:634487911 1473

PHP 异常错误处理

目录 错误与异常 异常类 错误类(PHP >= 7) 错误 错误报告级别 错误报告设置 全局异常处理程序 全局错误处理函数 无法捕获的错误类型 范例代码 ...

烟雨弥漫了江南的博客 1367

PHP错误处理&异常处理

避免过度捕获异常:不要过度捕获异常,这可能导致隐藏潜在的问题或掩盖错误。只捕获你知道如何处理的异常,并将其他未处理的异常传递给更上层的代码进行处理。抛出自定义异常:通过定义自定义异常类,可以更好地组织和标识特定类型的异常。这样可以确保异常被正确捕获,并且避免特定的异常被更一般的异常类型捕获导致无法执行特定的异常处理逻辑。块来处理不同类型的异常。使用合适的异常类型:PHP 中有许多内置的异常类型,如。,而将未知或不可处理的异常传递给更上层的代码进行处理。块进行处理:根据不同的异常类型,使用多个。

代码炼金术 4865

php 错误与异常

不管你在开发过程中是多么谨慎小心,但是错误总是或多或少的存在,特别是一些与环境相关的错误,在写代码写的再好也会遇到的,所以掌握phpp的错误与异常处理就显得很重要了,在出错后合理的处理善后工作会很大程度上降低错误引起的影响。 PHP 的错误 在php中定义的多种错误级别,大致分为以下几类: ...

chengzhiai4577的博客 108

php错误 异常的区别,php异常和错误的区别是什么

php异常和错误的区别:1、PHP错误是属于php程序自身的问题,一般是由非法的语法,环境问题导致的;2、PHP异常一般是业务逻辑上出现的不合预期、与正常流程不同的状况,不是语法错误。本教程操作环境:windows7系统、PHP5.6版,DELL G3电脑。php异常和错误的区别:PHP错误:是属于php程序自身的问题,一般是由非法的语法,环境问题导致的,使得编译器无法通过检查,甚至无法运行的情况...

weixin_33238848的博客 263

php以异常的形式捕获错误,php异常处理捕获哪些错误

原标题:php异常处理捕获哪些错误PHP的错误报告有三种:1、错误,语法解析错误,致命错误2、警告3、注意后果:错误 -> 致命错误,会终止已下程序的执行,语法错误的话,PHP压根就没执行。警告 -> 他不会终止运行,但会影响结果。注意 -> 不会终止执行,也不会影响结果。为了让用户得到更好的体验,我们屏蔽所有错误的输出,是输出,而不是显示。但这样的话,管理员也看不到错误了。页面...

weixin_34672536的博客 210
上一篇: php-zend-debug配置
下一篇: php延迟静态绑定
码哥说
博客等级 码龄8年 5645粉丝 172原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码哥说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值