浅谈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代码简化
Feb 08 PHP
PHP print类函数使用总结
Jun 25 PHP
CodeIgniter使用phpcms模板引擎
Nov 12 PHP
PHP中使用strpos函数实现屏蔽敏感关键字功能
Aug 21 PHP
php中删除、清空session的方式总结
Oct 09 PHP
php数组函数array_key_exists()小结
Dec 10 PHP
yii框架搜索分页modle写法
Dec 19 PHP
PHP实现APP微信支付的实例讲解
Feb 10 PHP
php的优点总结 php有哪些优点
Jul 19 PHP
Yii框架使用PHPExcel导出Excel文件的方法分析【改进版】
Jul 24 PHP
用php定义一个数组最简单的方法
Oct 04 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
用php实现批量查询清除一句话后门的代码
2008/01/20 PHP
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
jQuery使用动态渲染表单功能完成ajax文件下载
2013/01/15 Javascript
window.onresize 多次触发的解决方法
2013/11/08 Javascript
javascript中数组的冒泡排序使用示例
2013/12/18 Javascript
FireBug 调试JS入门教程 如何调试JS
2013/12/23 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
jquery使用经验小结
2015/05/20 Javascript
javascript数组排序汇总
2015/07/07 Javascript
js面向对象之常见创建对象的几种方式(工厂模式、构造函数模式、原型模式)
2015/11/09 Javascript
jQuery实现右下角可缩放大小的层完整实例
2016/06/20 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
2016/11/18 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
完美解决手机浏览器顶部下拉出现网页源或刷新的问题
2017/11/30 Javascript
微信小程序实现图片上传、删除和预览功能的方法
2017/12/18 Javascript
JavaScript继承与多继承实例分析
2018/05/26 Javascript
详解微信小程序回到顶部的两种方式
2019/05/09 Javascript
vue项目中将element-ui table表格写成组件的实现代码
2019/06/12 Javascript
vue+node 实现视频在线播放的实例代码
2020/10/19 Javascript
[02:38]2018DOTA2亚洲邀请赛赛前采访-VGJ.T
2018/04/03 DOTA
Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例
2018/02/13 Python
浅谈python爬虫使用Selenium模拟浏览器行为
2018/02/23 Python
python DataFrame 修改列的顺序实例
2018/04/10 Python
python绘制散点图并标记序号的方法
2018/12/11 Python
Python控制Firefox方法总结
2019/06/03 Python
详解Django 时间与时区设置问题
2019/07/23 Python
详解Django admin高级用法
2019/11/06 Python
numpy中三维数组中加入元素后的位置详解
2019/11/28 Python
基于python实现ROC曲线绘制广场解析
2020/06/28 Python
用HTML5 Canvas API中的clearRect()方法实现橡皮擦功能
2016/03/15 HTML / CSS
canvas裁剪clip()函数的具体使用
2018/03/01 HTML / CSS
美国折衷生活方式品牌:Robert Graham
2018/07/13 全球购物
新西兰便宜隐形眼镜购买网站:QUICKLENS New Zealand
2019/03/02 全球购物
红色经典电影观后感
2015/06/18 职场文书
大学宣传委员竞选稿
2015/11/19 职场文书
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫