一、 错误处理:
  a) 在写程序的过程当中,遇到错误时,你的反应?可能比较急躁,比较烦
  b) 遇到错误后:一别哭,二别闹,三别上吊,四别尿……
二、 你可能会遇到的错误:
  a) 语法错误
    i. 语法错误是最容易排除的错误,通常在报错行前后看看,就可以解决
  b) 运行时的错误
    i. 运行时的错误,不是特别容易排除,需要仔细检查
  c) 逻辑错误
    i. 逻辑错误,最难以排除!
三、 解决报错问题的方法:
  a) 输出法调试:
    i. 在编写程序的过程当中,我们应当边写边调试,能够有效的避免逻辑错误的出现!
  b) 断点法调试:
    i. 在程序的某个位置使用die或exit语法进行脚本的终端,然后配合输出法进行程序的调试!
  c) 删除法(注释法)调试:
    i. 将多余的代码进行删除或注释,再去判断执行结果是否正确
  d) 最佳解决方式:
    i. 还是输出法,就是我们边写边输出!
四、 Php当中错误级别:
  a) E_NOTICE 级别的错误(好比你的右手擦破点皮儿)
    i. NOTICE级别的错误,最容易排除,而且是级别最低的错误,它不会影响程序执行,只会提示一个内容;
  b) E_WARNING级别的错误(好比你的右手骨折了,但是你还有左手啊!)
    i. WARNING级别的错误,比较容易排除,报错行不再输出,不会影响整个脚本执行;
  c) E_ERROR 级别的错误(相当于脑袋掉了,脑袋掉了之后啥事儿都干不了了!)
    i. FATAL级别的错误,会直接终止整个脚本执行,相对容易排除!
  d) E_ALL 所有的错误和提示内容!
五、 在php当中控制错误级别的两种方法:
  a) 在配置文件当中(php.ini)
    i. 搜索 error_reporting = E_ALL,该选项是用来设置php当中错误显示的方式
    ii. 必须要认识的符号:
      1. &:并且
      2. |:或者
      3. ~:除了
      4. Error_reporting = E_ALL &~ E_NOTICE &~ E_WARNING &~ …
      5. 设置php错误显示所有错误,但是除了NOTICE级别的错误
    iii. 在php.ini当中设置的错误级别显示会作用于整个服务器!
  b) 在当前脚本当中
      i. 使用 error_reporting() 函数
      ii. error_reporting(E_ALL &~ E_NOTICE &~ E_WARNING &~ E_ERROR);
      iii. 在当前脚本的最上方添加上述语句,可以控制当前脚本的错误显示
      iv. 推荐,作用范围只是当前设置错误级别的脚本!
  c) 通过一项设置可以直接让所有的错误不再显示!
      i. Display_errors 在配置文件搜索该选项display_errors = On 会出现这个结果,我们可以将On修改为 Off即可实现错误提示关闭
  d) 在PHP脚本当中可以对配置文件当中的选项进行一些设置:
      i. Ini_get_all();可以获取所有我们能够在php脚本当中设置的配置项
      ii. Ini_get(配置名); 获取指定的配置项信息
      iii. Ini_set(配置名,配置值);在脚本当中设置配置项的信息
六、 错误日志:
  a) 在生活当中的很多地方,都应用到了这种日志记录,例如:航海日志,飞机上的黑匣子,php当中的错误日志文件等等
  b) 错误日志的存储位置:
    i. Wamp -> logs -> php_error.log 这就是php的错误日志文件
  c) 设置错误日志开启:
    i. Php.ini当中搜索log_errors = On,默认开启,如果改为Off说明关闭日志存储错误信息!
  d) 修改错误日志的存储位置
    i. 在php.ini当中搜索 error_log
    ii. error_log ="D:/Wamp/logs/php_error.log",位置可以自己定义
  e) 真正的项目在上线运营之前,需要查看错误日志设置的情况:
    i. 开发环境:允许报错!
    ii. 测试环境:允许报错!
    iii. 上线运营:不能报错!
      1. 要上线运营的项目,错误日志需要进行如下设置
        a) Display_errors = Off 设置报错信息不再脚本中显示
        b) Error_reporting = E_ALL 设置php报错机制为所有级别的错误!
        c) Log_errors = On 开启错误日志记录
        d) Error_log = “设置你要存储错误日志的位置!”
      2. 进行上面的设置之后,可以保证错误不再php脚本当中出现!

【php】错误日志处理的更多相关文章

  1. 【夯实PHP基础】nginx php-fpm 输出php错误日志

    本文地址 原文地址 分享提纲: 1.概述 2.解决办法(解决nginx下php-fpm不记录php错误日志) 1. 概述 nginx是一个web服务器,因此nginx的access日志只有对访问页面的 ...

  2. nginx php-fpm 输出php错误日志

    nginx是一个web服务器,因此nginx的access日志只有对访问页面的记录,不会有php 的 error log信息. nginx把对php的请求发给php-fpm fastcgi进程来处理, ...

  3. SQL Server 错误日志过滤(ERRORLOG)

    一.背景 有一天我发现SQL Server服务器的错误日志中包括非常多关于sa用户的登陆错误信息:“Login failed for user 'sa'. 原因: 评估密码时出错.[客户端: XX.X ...

  4. MySQL错误日志总结

    MySQL错误日志是记录MySQL 运行过程中较为严重的警告和错误信息,以及MySQL每次启动和关闭的详细信息.错误日志的命名通常为hostname.err.其中,hostname表示服务器主机名. ...

  5. MS SQL 监控错误日志的告警信息

    SQL Server的错误消息(Error Message)按照消息的严重级别一共划分25个等级,级别越高,表示严重性也越高.但是如果你统计sys.messages,你会发现,实际上只有16(SQL ...

  6. [AlwaysOn Availability Groups]SQL Server错误日志(AG)

    SQL Server错误日志(AG) SQL Server错误日志会记录影响AG的时间,比如: 1.和Windows故障转移集群交互 2.可用副本的状态 3.可用数据的状态 4.AG endpoint ...

  7. SQL Server自动化运维系列——监控磁盘剩余空间及SQL Server错误日志(Power Shell)

    需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 在所有的自检流程中最基础的一个就是磁盘剩余空间检测. ...

  8. C# 记录错误日志

    程序的错误日志如何记录下来? 可以在遇到异常时,Catch异常,然后把异常的信息输出到txt文件中即可 /// <summary> /// 错误日志 /// </summary> ...

  9. nginx error_log 错误日志配置说明

    nginx的error_log类型如下(从左到右:debug最详细 crit最少): [ debug | info | notice | warn | error | crit ] 例如:error_ ...

  10. 查看MS SQL SERVER 错误日志

    查看目的: 错误日志的查看是确保过程已成功完成(例如,备份和恢复操作,批处理命令,或其他脚本和过程).这可以帮助检测任何当前或潜在的问题,包括自动恢复信息(尤其是如果SQL Server实例已停止并重 ...

随机推荐

  1. html5 中高级选择器 querySelector

    简介 HTML5向Web API新引入了document.querySelector以及document.querySelectorAll两个方法用来更方便地从DOM选取元素,功能类似于jQuery的 ...

  2. MATLAB神经网络(1) BP神经网络的数据分类——语音特征信号分类

    1.1 案例背景 1.1.1 BP神经网络概述 BP神经网络是一种多层前馈神经网络,该网络的主要特点是信号前向传递,误差反向传播.在前向传递中,输入信号从输入层经隐含层逐层处理,直至输出层.每一层的神 ...

  3. Simulink仿真入门到精通(九) Simulink的流控制

    9.1 Simulink流控制分类 simulink中流控制时通过自带的模块实现的,包括If else.Switch.For和While4个种类. 9.2 While流控制 while 如果条件为真, ...

  4. MySQL记录操作(单表查询)

    单表查询的语法及关键字执行的优先级 单表查询语法 SELECT DISTINCT 字段1,字段2... FROM 表名 WHERE 条件 GROUP BY field HAVING 筛选 ORDER ...

  5. Spark入门(七)--Spark的intersection、subtract、union和distinc

    Spark的intersection intersection顾名思义,他是指交叉的.当两个RDD进行intersection后,将保留两者共有的.因此对于RDD1.intersection(RDD2 ...

  6. 深入理解requestAnimationFrame并实现相册组件中的切换动画

    全手打原创,转载请标明出处:https://www.cnblogs.com/dreamsqin/p/12529885.html,多谢,=.=~ (如果对你有帮助的话请帮我点个赞啦) 通常情况下,我们利 ...

  7. 为了弄懂Flutter的状态管理, 我用10种方法改造了counter app

    为了弄懂Flutter的状态管理, 我用10种方法改造了counter app 本文通过改造flutter的counter app, 展示不同的状态管理方法的用法. 可以直接去demo地址看代码: h ...

  8. Java并发编程之验证volatile不能保证原子性

    Java并发编程之验证volatile不能保证原子性 通过系列文章的学习,凯哥已经介绍了volatile的三大特性.1:保证可见性 2:不保证原子性 3:保证顺序.那么怎么来验证可见性呢?本文凯哥(凯 ...

  9. redis 持久化RDB、AOF

    1.redis持久化简介 Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集合和有序集合.支持在服务器端计算集合 ...

  10. linux入门系列18--Web服务之Apache服务1

    前面系列文章讲解了Linux下通过文件传输.文件共享.邮件系统来分享和获取资源,本文讲解网络资源获取和共享的另外一种形式,通过Apache服务程序来提供Web服务. 本文先讲解目前主流的Web服务程序 ...