错误分类

常见错误代号有:

  1. E_NOTICE
  2. 提示性错误,轻微;
  3. 错误发生后,后面的程序继续执行。
  4. E_WARNING
  5. 警告性错误,稍微严重;
  6. 错误发生后,后面的程序继续执行。
  7. E_ERROR
  8. 严重错误/致命错误;
  9. 错误发生后,后面的程序不再执行!
  10. E_PARSE
  11. 语法错误(语法解析错误);
  12. 语法解释错误,是直接就不运行程序。
  13. E_USER_NOTICE
  14. 用户自定义的提示错误
  15. E_USER_WARNING
  16. 用户自定义的警告错误
  17. E_USER_ERROR
  18. 用户自定义的严重错误
  19. E_ALL
  20. 它是一个代表“所有”错误的代号。

说明:
1,这些错误代号,其实只是系统预先设定的一些常量,他们的值大约是:1, 2, 4, 8, 16…..
2,这些错误代号,通常只是用于对错误控制时进行“设置”使用。
3,他们是一系列的整数,并具有一定的规律:1,2,4,8,16,32,64, 。。。。
4,可以在php.ini中使用(设置)他们,如下所示:
图片1.png

错误触发

就是发生了一个错误的意思——即触发了错误。
有两种情形会触发错误:
1,程序本身有错,则运行时就会触发错误(并提示)。
2,程序本身没错,但出现不符合预计的情形(比如数据不符合要求)。
此时程序员可以主动触发一个错误,也可以说是由程序员“主动创建一个错误”
——这就是“用户错误”,包括:
E_USER_NOTICE:
E_USER_WARNING:
E_USER_ERROR:
如何触发“用户错误”呢?

自定义错误触发语法:
trigger_error(“自定义错误提示内容”, 自定义错误的代号);

  1. <?php
  2. //演示“用户错误”的触发
  3. //输入一个年龄(简化为变量值),如果年龄超过60或小于0,就触发一个notice错误!
  4. function reg_user( $a ){
  5. if($a > 60 || $a < 0)
  6. {
  7. //trigger_error("我们自己触发的错误的提示信息", 用户错误代号);
  8. trigger_error("年龄不在我们公司的投保范围中", E_USER_NOTICE);
  9. }
  10. else{
  11. echo "<br>用户资料审核通过!";
  12. }
  13. }
  14. $age = 18;
  15. reg_user($age);
  16. echo "<br>再来一个需要审核的用户:";
  17. reg_user(66);

记录错误日志到文件

  1. <?php
  2. //演示错误日志的记录:
  3. //
  4. //设置需要去记录错误信息:
  5. ini_set("log_errors", 1);
  6. //设置记录错误信息的文件
  7. ini_set('error_log', './error_log.txt');
  8. echo $v1;
  9. echo "<h3>111</h3>";
  10. include './no-this-file.php';
  11. echo "<h3>222</h3>";
  12. $n2 = raund(2.6);
  13. echo "<h3>333</h3>";