浅谈PHP中的错误处理和异常处理


Posted in PHP onFebruary 04, 2017

错误处理:
    
    1. 语法错误
    2. 运行时的错误
    3. 逻辑错误

 

错误报告:
        
        错误E_ERROR
        警告E_WARNING
        注意E_NOTICE

开发阶段:开发时输出所有的错误报告,有利于我们进行调试

运行阶段:不要让程序输出任何一种错误报告

将错误报告写入日志中

一.   指定错误报告error_reporting=E_ALL(在php.inn)

二.   关闭错误输出display_errors=off(在php.ini中)

三.   开启错误日志的功能log_errors=on(在php.ini中)

1. 默认如果不指定错误日志位置,则默认写入web服务器的日志中

2. 为error_log选项指定一个文件名,这个文件名就是错误日志

3. 写入到操作系统日志中error_log=syslog

<?php
//注意和警告都不会终止程序的运行,但是错误会终止程序的运行

/*
错误E_ERROR
警告E_WARNING
注意E_NOTICE
*/
//所有的错误都输出除了注意
error_reporting(E_ALL & ~E_NOTICE);

//设置配置文件的值(临时)
//ini_set("upload_max_filesize", 2000000000);

//得到配置文件的值
//ini_get("upload_max_filesize");

//关闭错误报告的显示,一般在运行阶段使用
ini_set("display_errors", "off");
//将错误报告写入日志中
ini_set("log_errors", "on");
//日志的目录
ini_set("error_log", "D:/error.log");
gettype($var);  //注意

gettype();    //警告

//getype();    //错误,程序终止

echo "############<br>";
?>

异常处理:意外,是在程序运行过程中发生的意料之外的事,使用异常改变脚本正常流程

 PHP5中的一个新的重要特性

    try{

    }catch(异常对象){

    }

1.  如果try中代码没有问题,则将try中代码执行完成后就到catch后执行

2.  如果try中代码有异常发生,则抛出一个异常对象(使用throw),抛出给了catch中的参数,则在try中出现异常代码后的内容就不会执行,直接跳转到catch中去执行,catch中执行完成,再继续向下执行

<?php
try{
  echo "11111111<br>";
  $file=@fopen("./hello.txt","r");
  if(!$file){
    throw new Exception("文件打开失败");
    
  }
  echo "2222222222<br>";
}catch(Exception $e){
  echo "3333333<br>";
  echo $e->getMessage()."<br>";
  touch("hello.txt");
  $file=@fopen("./hello.txt","r");
}
echo "4444444<br>";
?>

以上这篇浅谈PHP中的错误处理和异常处理就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP获取和操作配置文件php.ini的几个函数介绍
Jun 24 PHP
解析php 版获取重定向后的地址(代码)
Jun 26 PHP
解决php接收shell返回的结果中文乱码问题
Jan 23 PHP
PHP CURL 内存泄露问题解决方法
Feb 12 PHP
php中删除数组的第一个元素和最后一个元素的函数
Mar 07 PHP
分享自定义的几个PHP功能函数
Apr 15 PHP
简单理解PHP的面向对象编程方式
May 17 PHP
浅谈PHP正则中的捕获组与非捕获组
Jul 18 PHP
PHP验证终端类型是否为手机的简单实例
Feb 07 PHP
浅谈PHP表单提交(POST&amp;GET&amp;URL编/解码)
Apr 03 PHP
[原创]php实现数组按拼音顺序排序的方法
May 03 PHP
tp5框架使用cookie加密算法实现登录功能示例
Feb 10 PHP
详谈PHP中的密码安全性Password Hashing
Feb 04 #PHP
php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)
Feb 04 #PHP
PHP水印类,支持添加图片、文字、填充颜色区域的实现
Feb 04 #PHP
Yii2下session跨域名共存的解决方案
Feb 04 #PHP
浅谈PHP的$_SERVER[SERVER_NAME]
Feb 04 #PHP
php基于dom实现读取图书xml格式数据的方法
Feb 03 #PHP
php基于dom实现的图书xml格式数据示例
Feb 03 #PHP
You might like
为IP查询添加GOOGLE地图功能的代码
2010/08/08 PHP
zend optimizer在wamp的基础上安装图文教程
2013/10/26 PHP
PHP 双链表(SplDoublyLinkedList)简介和使用实例
2015/05/12 PHP
PHP实现限制IP访问及提交次数的方法详解
2017/07/17 PHP
Javascript var变量隐式声明方法
2009/10/19 Javascript
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
JavaScript实现可拖拽的拖动层Div实例
2015/08/05 Javascript
原生js实现验证码功能
2017/03/16 Javascript
JavaScript之iterable_动力节点Java学院整理
2017/06/29 Javascript
微信小程序实现滚动消息通知
2018/02/02 Javascript
angular动态表单制作
2018/02/23 Javascript
vue组件实现进度条效果
2018/06/06 Javascript
[52:32]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第三场 11.18
2020/11/18 DOTA
让python json encode datetime类型
2010/12/28 Python
从零开始学Python第八周:详解网络编程基础(socket)
2016/12/14 Python
TensorFlow模型保存和提取的方法
2018/03/08 Python
Python numpy 提取矩阵的某一行或某一列的实例
2018/04/03 Python
Python全栈之列表数据类型详解
2019/10/01 Python
Python解压 rar、zip、tar文件的方法
2019/11/19 Python
Python在centos7.6上安装python3.9的详细教程(默认python版本为2.7.5)
2020/10/15 Python
学校教师读书活动总结
2014/07/08 职场文书
专题民主生活会对照检查材料思想汇报
2014/09/29 职场文书
自荐信模板大全
2015/03/27 职场文书
2015年推普周活动方案
2015/05/06 职场文书
百年孤独读书笔记
2015/06/29 职场文书
关于车尾的标语大全
2015/08/11 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书
中国梦宣传标语口号
2015/12/26 职场文书
听课评课活动心得体会
2016/01/15 职场文书
apache基于端口创建虚拟主机的示例
2021/04/22 Servers
MySQL系列之六 用户与授权
2021/07/02 MySQL
MYSQL 的10大经典优化案例场景实战
2021/09/14 MySQL
关于MybatisPlus配置双数据库驱动连接数据库问题
2022/01/22 Java/Android
Consul在linux环境的集群部署
2022/04/08 Servers