浅谈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 执行系统命令的方法
Jul 07 PHP
php中在PDO中使用事务(Transaction)
May 14 PHP
php学习笔记 数组遍历实现代码
Jun 09 PHP
php网站地图生成类示例
Jan 13 PHP
PHP学习笔记(二) 了解PHP的基本语法以及目录结构
Aug 04 PHP
跟我学Laravel之视图 &amp; Response
Oct 15 PHP
优化WordPress的Google字体以加速国内服务器上的运行
Nov 24 PHP
PHP插件PHPMailer发送邮件功能
Feb 28 PHP
PHP如何根据文件头检测文件类型实例代码
Oct 14 PHP
PHP中“=&gt;
Mar 01 PHP
PHP7内核CGI与FastCGI详解
Apr 14 PHP
TP5框架实现上传多张图片的方法分析
Mar 29 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
一个可查询所有表的“通用”查询分页类
2006/10/09 PHP
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
2011/05/17 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
使用array_map简单搞定PHP删除文件、删除目录
2014/10/29 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
php中namespace use用法实例分析
2016/01/22 PHP
PHP iconv()函数字符编码转换的问题讲解
2019/03/22 PHP
PHP进阶学习之类的自动加载机制原理分析
2019/06/18 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
php+js实现点赞功能的示例详解
2020/08/07 PHP
multiSteps 基于Jquery的多步骤滑动切换插件
2011/07/22 Javascript
windows系统下简单nodejs安装及环境配置
2013/01/08 NodeJs
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
文字垂直滚动之javascript代码
2015/07/29 Javascript
JS短信验证码倒计时功能的实现(没有验证码,只有倒计时)
2016/10/27 Javascript
IScroll那些事_当内容不足时下拉刷新的解决方法
2017/07/18 Javascript
js基础之事件捕获与冒泡原理
2019/10/09 Javascript
js回调函数仿360开机
2019/12/26 Javascript
javaScript实现一个队列的方法
2020/07/14 Javascript
JS如何判断对象是否包含某个属性
2020/08/29 Javascript
通过JS判断网页是否为手机打开
2020/10/28 Javascript
python简单实现基数排序算法
2015/05/16 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/26 Python
使用Python进行体育竞技分析(预测球队成绩)
2019/05/16 Python
Python实现最大子序和的方法示例
2019/07/05 Python
python,Java,JavaScript实现indexOf
2020/09/09 Python
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
英国在线照明超市:Castlegate Lights
2019/10/30 全球购物
彪马法国官网:PUMA法国
2019/12/15 全球购物
建筑设计所实习生自我鉴定
2013/09/25 职场文书
雏鹰争章活动总结
2014/05/09 职场文书
建筑工程造价专业自荐信
2014/07/08 职场文书
小城镇建设汇报材料
2014/08/16 职场文书
国家助学金感谢信
2015/01/21 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
2019财务毕业实习报告
2019/06/27 职场文书