php中的错误处理

wjw9 2019-06-04 原文

php中的错误处理

1.错误的级别

1.notice 提示
2.warning 警告
3.error 致命错误

notice和warning报错后继续执行,
error报错后停止执行

 

2.错误的提示方法

方法一:显示在浏览器上

方法二:记录在日志中

3.与错误处理有关的配置

在php.ini中

1. error_reporting = E_ALL:报告所有的错误
2. display_errors = On:将错误显示在浏览器上
3. log_errors = On:将错误记录在日志中
4. error_log=’地址’:错误日志保存的地址

在项目开发过程中有两个模式,开发模式,运行模式

开发模式:错误显示在浏览器上,不要记录在日志中
运行模式:错误不显示在浏览器上,记录是日志中

<?php
$debug=false;        //true:开发模式  false:运行模式
ini_set('error_reporting',E_ALL);    //所有的错误有报告
if($debug){
    ini_set('display_errors','on');    //错误显示是浏览器上
    ini_set('log_errors','off');    //错误不显示在日志中
}else{
    ini_set('display_errors','off');
    ini_set('log_errors','on');
    ini_set('error_log','./err.log');    //错误日志保存的地址
}

//测试
echo $num;

4.自定义错误处理

通过trigger_error产生一个用户级别的 error/warning/notice 信息

/**
*自定义错误处理函数
*@param $errno int 错误类别
*@param $errstr string 错误信息
*@param $errfile string 文件地址
*@param $errline int 错误行号
*/
function error($errno,$errstr,$errfile,$errline) {
    switch($errno){
        case E_NOTICE:
        case E_USER_NOTICE:
            echo '记录在日志中,上班后在处理<br>';
            break;
        case E_WARNING:
        case E_USER_WARNING:    
            echo '给管理员发邮件<br>';
            break;
        case E_ERROR:
        case E_USER_ERROR:
            echo '给管理员打电话<br>';
            break;
    }
    echo "错误信息:{$errstr}<br>";
    echo "错误文件:{$errfile}<br>";
    echo "错误行号:{$errline}<br>";
}
set_error_handler('error');
echo $num;

//运行结果
记录在日志中,上班后在处理
错误信息:Undefined variable: num
错误文件:F:\wamp\www\4-demo.php
错误行号:50

 

发表于 2019-06-04 20:25 花凝冰 阅读() 评论() 编辑 收藏

 

版权声明:本文为wjw9原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/wjw9/p/10975924.html

php中的错误处理的更多相关文章

  1. PHP学习笔记

    PHP学习笔记   时间:2019-8-3,天气:阴       0x01 strpos()函数 该函数用来查 […]...

  2. PHP国密SM2\SM4对接Java SM2SignWithSM3 (招商银行云直联)

    添加composer 包:composer require lpilp/guomiSM2签名<?phpuse Mdanter\Ecc\Crypto\Key\PrivateKey;use Mdanter\Ecc\Crypto\Signat...

  3. PHP sprintf函数 bug

    sprintf()定义和用法format参数可能的格式值:%% - 返回一个百分号 %%b - 二进制数%c - ASCII 值对应的字符%d - 包含正负号的十进制数(负数、0、正数)%e - 使用小写的科学计数法(例如...

  4. Laravel个人博客集成Elasticsearch和ik分词

    在之前的博客中,写了一篇用laravel5.5和vue写的个人博客。GitHub地址为:https://git […]...

  5. var_dump和var_export区别

    1.var_dump() :获取结构化的数据,按照数组的层级输出 2.var_export() :获取结构化的 […]...

  6. PHP 字符串操作

    字符串的定义1、使用单引号和双引号包裹2、使用heredoc结构和nowdoc结构字符串转义转义含义:在计算机中,有一些特殊的方式定义的字母,系统会特定处理:通常这种方式都是使用反斜杠+字母(单词)的特性例如:/r /n:回车、...

  7. LNMP一键安装包-CentOS/Ubuntu/Debian自动安装Nginx,MySQL,PHP

    适用环境: 系统支持:CentOS、Ubuntu、Debian 内存要求:≥128M 安装了什么: 1、Ngi […]...

  8. thinkphp5引入公共部分header、footer等

    由于用惯了tp3.2,改用tp5有些还是感觉别扭的 直接上问题:项目中需要用到引入公共导航、头部、底部、右边部 […]...

随机推荐

  1. 关于ORM的浴室思考

    这是一个由EF群引发的随笔 平时在一个EF群摸鱼,日常问题可以归纳为以下几种: 这条sql用linq怎么写? […]...

  2. 小波变换教程(六)

    译文转:https://blog.csdn.net/alihouzi/article/details/4519 […]...

  3. windows10安装SQLServer 2008 R2详细说明

    SQLServer 2008 R2安装 假设已下载好SQLServer安装包,安装详细说明如下: 一、提取文件 […]...

  4. 图解|网络究竟是如何运作的?

    前言 毫无疑问,互联网已经彻底改变了人们的生活,不管怎样,它或许是我们建造的最伟大的工具。 但它是怎么工作的? […]...

  5. 又被分治题卡住好几个小时!用最笨的方法搞懂分治法边界,告别死循环!

    花了一晚上和一上午,把所有情况都捋了一遍、把迭代过程考虑清楚了。 这篇文章写于我刚学算法时。好家伙,第一道题快 […]...

  6. 最短路径(图论-北京地铁线路查询)

    利用最短路径查询北京地铁线路 目录    如果需要资料请联系我或点击此处链接(百度文库)       1 in […]...

  7. SpringMvc快速入门之使用篇

    前文:文章是为了结合工作需求来介绍springmvc,本文章只是切合实际的开发的场景对springmvc进行快 […]...

  8. java io系列13之 BufferedOutputStream详解

    目录1. BufferedOutputStream 介绍2. BufferedOutputStream 源码分析(基于jdk1.7.40)3. 示例代码 1. BufferedOutputStream 介绍BufferedOutpu...

展开目录

目录导航