- PHP中开启错误提示
- 在php.ini 中将display_errors 设置为on。
- 也可以在PHP脚本中用ini_set()函数动态的设置php.ini中的某个指令。ini_set('display',1)
- 错误提示会泄露服务器的相关信息,所以一般在开发测试阶段开启,在正式 上线使用关闭错误提示信息
- 设置错误报告级别
- 在php.ini中通过设置error_reporting的来调整错误报告级别
- error_reporting = E_ALL&~E_NOTICE//抛出任何非注意的错误,默认值
- error_reporting = E_ERROR|E_PARSE|E_CODE_ERROR//只考虑致命的运行错误,解析错误和和核心错误
- 也可以在php脚本中通过error_reporting()函数来设置错误报告级别
- error_reporting(0)//关闭错误报告
- error_reporting(E_ALL)//将会PHP报告发生的每个错误
- error_reporting(E_ALL & ~ E_NOTICE)//抛出任何飞注意的错误
- error_reporting(E_ALL &~(E_WARNING | E_NOTICE)) //不提示警告和提示
- 在php.ini中通过设置error_reporting的来调整错误报告级别
- die(),exit()在退出前都可以输出提示信息,tigger_error()可以替代它们以一个警告的方式提示信息并退出
- 用户自定义错误处理set_error_handler(ballback,error_level)
- 第一个参数是发生错误后启用的回调函数
- 第二参数是错误级别(一般不用)
- 当使用set_error_hander()后,error_reporing()将会失效,所有的错误将会自动调用自定的回调函数
- 致命错误fatal error不会调用用户自定义的错误处理函数,系统会自动中断并退出。
- 写错误报告日志
- 第一步:在php.ini文件中配置选选项
- error_reporing = E_ALL ;报告每个错误
- display_errors = Off ;不显示满足上条指令所定义规则的所有错误报告
- log_errors = on ;决定日志文件的位置
- log_errors_max_len = 1024 ;设置每个日志项的最大长度(0也是最大值)
- error_log = /usr/local/error.log ;指定错误报告写入的日志文件位置
- 第二步:bool error_log( ) 在调用php 中的函数(在完成上面配置的基础上,error_log路径将会被覆盖掉)
- error_log("错误信息",val,"记录日志的位置")
- 0:将错误消息写到系统日志中去
- linux:/usr/local/error.log
- windows:右击我的电脑-》选择管理选项-》系统工具菜单-》时间查看器-》再找到应用程序选项。
- 1:发送到 指定的邮箱中去
- error_log(“哎呦出错了”,1,‘421659183@qq.com’)
- 2 :发送到本机的端口中
- error("哎哟出错了",2,“localhost:300”);
- 3 :发送的到指定的文件中.
- error_log("哎呦出错了",3,“c:/logs/error.log”);
- 0:将错误消息写到系统日志中去
- error_log("错误信息",val,"记录日志的位置")
- 第一步:在php.ini文件中配置选选项
- 将错误信息写到操作系统的日志文件中去
- 第一步:在php.ini文件中配置选选项
- error_reporing = E_ALL ;报告每个错误
- display_errors = Off ;不显示满足上条指令所定义规则的所有错误报告
- log_errors = on ;决定日志文件的位置
- log_errors_max_len = 1024 ;设置每个日志项的最大长度(0也是最大值)
- error_log = syslog ;指定错误报告写入到操作系统的日志里
- 第二步:在php脚本中依次使用以下函数
- define_syslog_variables() //该函数已被弃用,本人暂时没有找到替换的方法
- openloga()
- syslog()
- closelog()
- 实例:error_log.php
- 第一步:在php.ini文件中配置选选项
- ==================================
- php 异常处理需要手动抛出,java 中的 异常处理是自动抛出的
- 从抛出异常处进入异常处理代码块,抛出异常位置到catch 中间的代码则不会执行,catch代码块部分的 代码执行完后跳出异常处理,继续向下执行。
- 可以extends Exception 自定义自己的异常处理类
- 可以捕获多个异常,异常的类别根据catch(类型)中的类型决定进入哪一个异常处理分支,如果都不满足则进入最后一个异常处理分支中。
PHP 的错误和异常处理
最新推荐文章于 2024-08-03 09:02:31 发布