浅谈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 相关文章推荐
使用无限生命期Session的方法
Oct 09 PHP
屏蔽浏览器缓存另类方法
Oct 09 PHP
php 之 没有mysql支持时的替代方案
Oct 09 PHP
PHP新手上路(三)
Oct 09 PHP
APMServ使用说明
Oct 23 PHP
IStream与TStream之间的相互转换
Aug 01 PHP
批量去除PHP文件中bom的PHP代码
Mar 13 PHP
关于UEditor编辑器远程图片上传失败的解决办法
Aug 31 PHP
ThinkPHP表单自动验证实例
Oct 13 PHP
深入理解PHP中的count函数
May 31 PHP
Yii 2.0在Grid中格式化时间方法示例
Jun 06 PHP
PHP多进程通信-消息队列使用
Mar 08 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
关于js与php互相传值的介绍
2013/06/25 PHP
详解PHP防止盗链防止迅雷下载的方法
2017/04/26 PHP
ThinkPHP实现附件上传功能
2017/04/27 PHP
jQuery使用手册之二 DOM操作
2007/03/24 Javascript
javascript 类方法定义还是有点区别
2009/04/15 Javascript
jquery 锁定弹出层实现代码
2010/02/23 Javascript
理解Javascript_10_对象模型
2010/10/16 Javascript
用Jquery实现多级下拉框无刷新的联动
2010/12/22 Javascript
jsp+javascript打造级连菜单的实例代码
2013/06/14 Javascript
基于js disabled=&quot;false&quot;不起作用的解决办法
2013/06/26 Javascript
JavaScript实现跑马灯抽奖活动实例代码解析与优化(一)
2016/02/16 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
js判断一个字符串是以某个字符串开头的简单实例
2016/12/27 Javascript
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
vue.js路由跳转详解
2017/08/28 Javascript
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
2017/12/28 Javascript
实例解析Vue.js下载方式及基本概念
2018/05/11 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
Vue 中如何正确引入第三方模块的方法步骤
2019/05/05 Javascript
JavaScript This指向问题详解
2019/11/25 Javascript
Vue实现多标签选择器
2019/11/28 Javascript
Python学习小技巧之列表项的排序
2017/05/20 Python
python处理Excel xlrd的简单使用
2017/09/12 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
Python单元和文档测试实例详解
2019/04/11 Python
如何安装并使用conda指令管理python环境
2019/07/10 Python
python 魔法函数实例及解析
2019/09/25 Python
Python如何使用Gitlab API实现批量的合并分支
2019/11/27 Python
python如何实现复制目录到指定目录
2020/02/13 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
里程积分管理买卖交换平台:Points.com
2017/01/13 全球购物
财经学院自荐信范文
2014/02/02 职场文书
简单租房协议书范本
2014/08/20 职场文书
2014年个人业务工作总结
2014/11/17 职场文书
让人感觉高大上的讲话稿怎么写?
2019/07/08 职场文书
人民币符号
2022/02/17 杂记