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. 【1】循序渐进学 Zabbix :初识与基础依赖环境搭建( LNMP )

          写在前面的话   运维监控是一个很大的话题,在这一块个人接触的比较突出的服务主要有 Nagio 和 […]...

  2. php伪协议

    PHP支持的伪协议123456789101112file:// — 访问本地文件系统http:// — 访问 HTTP(s) 网址ftp:// — 访问 FTP(s) URLsphp:// — 访问各个输入/输...

  3. 如何有效防止别人恶意刷验证码

    相信很多朋友都有试过被人恶意刷验证码的经历,当然我也不例外,之前被人恶意搞过一次,如果短信服务针对的用户不只是 […]...

  4. PHP代做编程辅导:CPT270 Cinemas

    全文链接:tecdat.cn/?p=29688IntroductionWeb的裸写大作业,做一个Cinemas,包括Image Gallery,Movies Selection,Movies Reservation,Shopping...

  5. PHP的会话控制

    页面数据的作用域: 当前页共享数据:变量、常量 两个页面间传递数据:get,post 跟踪用户的多页面数据共享 […]...

  6. php合并图片

    <?php//案例一:将活动背景图片和动态二维码图片合成一张图片//图片一$path_1 = './background.png';//图片二$path_2 = './FU0851_2.png';//创建图片对象$image_1...

  7. PHP 接入芝麻信用 注意 事项

    php,芝麻信用 芝麻官方下载的SDK,跑不起来,百度搜索一番也没有发现太多的文章 ,只有一个CSDN博客写的 […]...

  8. centos7安装docker

    centos7安装docker 标签(空格分隔): docker 1 移除旧版本 sudo yum remov […]...

随机推荐

  1. 复习-jQuery

    咱就是说,发现了一个更好的方法每次把效果图制作成了一个gif,另外推荐个免费软件GIFcam很方便制作gif图,毕竟js是一门动态交互的语言对吧,没有动态的图那就是没有灵魂的所以以后就用这种方式来上传一些页面的效果交互,今天是对jQuer...

  2. 假如你不小心干掉了系统,你该怎么办?(一次手贱的记录 ~ Ubuntu and Python3.6)

    前言 多年未犯低级错误,今天犯了个不大不小的错误,记录下生活点滴吧 今天早上脑海里想了下,如果电脑挂了我要备份 […]...

  3. [Cisco]一些思科路由器命令,不断更新……

    trace xxx.xxx.xxx.xxx show int f0/0 show cdp neighbors […]...

  4. 一般电脑软件整体缩进和缩退快捷键 – 黄志平

    一般电脑软件整体缩进和缩退快捷键 一般程序员在写代码中对齐才为美观,而且写出来的代码让人看的更舒服,所以我们会 […]...

  5. 从输入URL到页面加载的全过程

    [1]概述 [2]构建请求 [3]网络传输 [4]服务器处理及反向传输 [5]浏览器渲染 前面的话   本文将 […]...

  6. matlab subplot(figure)如何设置使得图像最终显示出来不一样大小

    1. 问题描述 figure subplot(1, 2, 1), imshow(A) subplot(1, 2 […]...

  7. Java中的增强 for 循环 foreach

    Java中的增强 for 循环 foreach   foreach 是 Java 中的一种语法糖,几乎每一种语 […]...

  8. lua学习之复习汇总篇

    第六日笔记 1. 基础概念 程序块 定义 在 lua 中任何一个源代码文件或在交互模式中输入的一行代码 程序块 […]...

展开目录

目录导航