zoukankan      html  css  js  c++  java
  • PHP知识点--错误处理

    一、错误的分类

    语法错误:
    程序没法运行,直接提示语法错误。

    运行时错误:
    只有程序运行到某行,或在某些特定的情形下运行才会发生的错误。

    逻辑错误:
    程序从头到尾运行都没有发生(并提示)错误,但程序运行计算的结果是错误的。

    我们程序员主要面对的和要处理(应付)的错误,就是运行时错误。

    二、错误的分级
    系统错误:
    E_ERROR:系统严重错误
    一发生,程序立即停止执行。
    该错误一般希望马上。
    E_WARNING:系统警告
    一发生,提示错误,并继续执行。
    通常该错误希望能够在“下一工作日”去处理掉(解决)。
    E_PARSE:语法错误
    一发生,提示错误,而且代码完全不会运行——在运行之前先检查语法。
    E_NOTICE:系统提示
    一发生,提示错误,并继续执行。
    发个邮件通知一下,自己安排时间有空去解决。

    三、用户自定义错误
    只有3个:
    E_USER_ERROR;

    E_USER_WARNING;

    E_USER_NOTICE;
    我们可以在程序中,自己创建(生成)错误——是为了针对某些数据的不合理情形,而创建的错误。
    比如:让用户填写年龄, 填18是ok,但填写188就是不合理——从数字角度本身是没有问题。
    其他:
    E_ALL; 代表所有错误——表示它可以“包括”错误。
    E_STRICT: 代表“严格性”语法检查错误——某种语法是可以执行的,但在当前的php版本中是不欢迎使用。

    四、错误的触发:
    1、正常触发:
    程序运行时确实发生了运行时错误——也可能是语法检查错误。
    2、人工触发:
    就是由程序员通过程序代码而“产生”一个错误。
    应用中,通常是需要检测(判断)数据的有效性,以决定是否触发相应错误


    五、错误的显示控制
    网页中显示(提示)错误信息,是可以进行控制的,有2种途径:
    1,在php.ini文件中设定,对所有php程序都有效;
    2,在当前脚本文件中,只对当前脚步文件有效。

    错误的显示有2个方面可以进行控制;
    1,设定是否显示:display_error:
    2,设定显示哪些级别的错误——依赖与第一项设定为显示的情况。


    六、记录错误日志
    记录错误日志有2种途径:
    1,在Php.ini文件中设定:
    可见,页面中显示的错误提示内容,和日志文件中记录的错误信息内容,一样。
    error_log还有一个特殊值可以使用:
    error_log = syslog; //此时不会记录错误日志文件,而是把错误信息写入到系统错误日志中
    2,在当前脚本文件中:
    ini_set(“log_errors” , On); //或者Off
    ini_set(“error_log”, ‘err1.log’); //后缀随便用
    ini_set(“error_log”, ‘err2.txt’);
    ini_set(“error_log”, ‘err3.html’);
    int_set(“error_log”, syslog); //记录到操作系统日志中。
    自定义错误处理
    以上的错误处理,不管是显示错误,还是记录错误日志,都是php语言内部实现的。
    我们只是几个简单的设定是否显示或是否记录或显示哪些,或记录到哪里。
    则:
    自定义错误处理,就可以让我们自己完全控制错误的提示内容!
    做法非常简单:
    1,设定要用来进行自定义处理错误的自定义函数名;
    2,自己去定义该函数,并在其中进行任何错误信息的输出(或记录)。
    这两件事做好后,一旦发生错误,则系统就会调用该函数去执行里面的代码——想干嘛干嘛。

  • 相关阅读:
    专职DBA-MySQL体系结构与基本管理
    JSON
    MIME类型
    文件上传下载
    response常用的方法
    2020.11.27小记
    HTTP请求状态码
    1561. Maximum Number of Coins You Can Get
    1558. Minimum Numbers of Function Calls to Make Target Array
    1557. Minimum Number of Vertices to Reach All Nodes
  • 原文地址:https://www.cnblogs.com/1301694f/p/8366709.html
Copyright © 2011-2022 走看看