浅谈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 相关文章推荐
搜索引擎技术核心揭密
Oct 09 PHP
php adodb连接mssql解决乱码问题
Jun 12 PHP
PHP在特殊字符前加斜杠的实现代码
Jul 17 PHP
php+Mysqli利用事务处理转账问题实例
Feb 11 PHP
使用PHP生成图片的缩略图的方法
Aug 18 PHP
WordPress过滤垃圾评论的几种主要方法小结
Jul 11 PHP
php中static和const关键字用法分析
Dec 07 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 PHP
彻底搞懂PHP 变量结构体
Oct 11 PHP
thinkPHP框架动态配置用法实例分析
Jun 14 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
Oct 11 PHP
php命令行模式代码实例详解
Feb 26 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
SSI指令
2006/11/25 PHP
php设计模式 Decorator(装饰模式)
2011/06/26 PHP
Linux中为php配置伪静态
2014/12/17 PHP
PHP获取文件夹内文件数的方法
2015/03/12 PHP
php 实现一个字符串加密解密的函数实例代码
2016/11/01 PHP
Laravel + Elasticsearch 实现中文搜索的方法
2020/02/02 PHP
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
IE6/7 and IE8/9/10(IE7模式)依次隐藏具有absolute或relative的父元素和子元素后再显示父元素
2011/07/31 Javascript
jquery 使用简明教程
2014/03/05 Javascript
PHP+jQuery+Ajax+Mysql如何实现发表心情功能
2015/08/06 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
2016/05/09 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
2016/05/25 Javascript
javascript获取网页各种高宽及位置的方法总结
2016/07/27 Javascript
nodejs的HTML分析利器node-jquery用法浅析
2016/11/08 NodeJs
jQuery实现选项卡功能(两种方法)
2017/03/08 Javascript
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
2017/10/19 jQuery
浅谈Vue.js 组件中的v-on绑定自定义事件理解
2017/11/17 Javascript
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
从零撸一个pc端vue的ui组件库( 计数器组件 )
2019/08/08 Javascript
JS实现进度条动态加载特效
2020/03/25 Javascript
详解python里使用正则表达式的分组命名方式
2017/10/24 Python
Python图片转换成矩阵,矩阵数据转换成图片的实例
2018/07/02 Python
pytorch中torch.max和Tensor.view函数用法详解
2020/01/03 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
2020/07/03 Python
Python过滤序列元素的方法
2020/07/31 Python
html5使用canvas绘制文字特效
2014/12/15 HTML / CSS
Python里面如何拷贝一个对象
2014/02/17 面试题
业务主管岗位职责
2013/11/20 职场文书
交通事故私了协议书
2014/04/16 职场文书
绿色环保口号
2014/06/12 职场文书
团日活动总结模板
2014/06/25 职场文书
碧霞祠导游词
2015/02/09 职场文书
pytest配置文件pytest.ini的详细使用
2021/04/17 Python
Canvas绘制像素风图片的示例代码
2021/09/25 HTML / CSS