浅谈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下过滤HTML代码的函数
Dec 10 PHP
在PHP中设置、使用、删除Cookie的解决方法
May 06 PHP
PHP中实现生成静态文件的方法缓解服务器压力
Jan 07 PHP
ThinkPHP的L方法使用简介
Jun 18 PHP
PHP的运行机制与原理(底层)
Nov 16 PHP
PHP curl模拟登录带验证码的网站
Nov 30 PHP
Symfony2 session用法实例分析
Feb 04 PHP
php简单统计在线人数的方法
May 10 PHP
PHP 在数组中搜索给定的简单实例 array_search 函数
Jun 13 PHP
详谈配置phpstorm完美支持Codeigniter(CI)代码自动完成(代码提示)
Apr 07 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
解决laravel中日志权限莫名变成了root的问题
Oct 17 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
asp和php下textarea提交大量数据发生丢失的解决方法
2008/01/20 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
2012/11/01 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
2016/01/22 PHP
javascript入门·图片对象(无刷新变换图片)\滚动图像
2007/10/01 Javascript
精解window.setTimeout()&amp;window.setInterval()使用方式与参数传递问题!
2007/11/23 Javascript
再论Javascript的类继承
2011/03/05 Javascript
jquery显示隐藏input对象
2014/07/21 Javascript
JavaScript获取表单enctype属性的方法
2015/04/02 Javascript
jQuery实现仿美橙互联两级导航菜单效果完整实例
2015/09/17 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
jquery 判断div show的状态实例
2016/12/03 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
jQuery实现的简单无刷新评论功能示例
2017/11/08 jQuery
jQuery实现动态加载select下拉列表项功能示例
2018/05/31 jQuery
layerUI下的绑定事件实例代码
2018/08/17 Javascript
使用vue-router与v-if实现tab切换遇到的问题及解决方法
2018/09/07 Javascript
解决vue 退出动画无效的问题
2020/08/09 Javascript
极简的Python入门指引
2015/04/01 Python
Python中http请求方法库汇总
2016/01/06 Python
Python 实现一个颜色色值转换的小工具
2016/12/06 Python
Python 关于反射和类的特殊成员方法
2017/09/14 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
python实现学生通讯录管理系统
2021/02/25 Python
网页布局中CSS样式无效的十个重要原因详解
2017/08/10 HTML / CSS
校长先进事迹材料
2014/02/01 职场文书
大学班级计划书
2014/04/29 职场文书
工商干部先进事迹
2014/05/14 职场文书
委托书的写法
2014/08/30 职场文书
实习班主任自我评价
2015/03/11 职场文书
2015夏季作息时间调整通知
2015/04/24 职场文书
考勤制度通知
2015/04/25 职场文书
python tkinter模块的简单使用
2021/04/07 Python
怎么用Python识别手势数字
2021/06/07 Python
sqlserver连接错误之SQL评估期已过的问题解决
2022/03/23 SQL Server