浅谈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编程开发“虚拟域名”系统
Oct 09 PHP
PHP简介
Oct 09 PHP
Adodb的十个实例(清晰版)
Dec 31 PHP
PHP入门速成教程
Mar 19 PHP
PHP生成随机用户名和密码的实现代码
Feb 27 PHP
thinkphp3.2.2实现生成多张缩略图的方法
Dec 19 PHP
PhpStorm terminal无法输入命令的解决方法
Oct 09 PHP
Laravel框架路由和控制器的绑定操作方法
Jun 12 PHP
PHP生成随机码的思路与方法实例探索
Apr 11 PHP
PHP cookie与session会话基本用法实例分析
Nov 18 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
May 02 PHP
php解析非标准json、非规范json的方式实例
Dec 10 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开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
PHP 创建标签云函数代码
2010/05/26 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
js 删除数组的几种方法小结
2014/02/21 Javascript
jQuery遍历json中多个map的方法
2015/02/12 Javascript
创建你的第一个AngularJS应用的方法
2015/06/16 Javascript
javascript解析xml实现省市县三级联动的方法
2015/07/25 Javascript
Bootstrap列表组学习使用
2017/02/09 Javascript
swiper自定义分页器使用方法详解
2020/09/14 Javascript
js遍历添加栏目类添加css 再点击其它删除css【推荐】
2018/06/12 Javascript
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
vue实现微信二次分享以及自定义分享的示例
2019/03/20 Javascript
JS实现音乐导航特效
2020/01/06 Javascript
浅析Python中的多进程与多线程的使用
2015/04/07 Python
简单谈谈Python流程控制语句
2016/12/04 Python
Python实现二分查找与bisect模块详解
2017/01/13 Python
Python单例模式实例详解
2017/03/01 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
Python实现的批量修改文件后缀名操作示例
2018/12/07 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
2019/05/06 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
2019/05/29 Python
python用win32gui遍历窗口并设置窗口位置的方法
2019/07/26 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
详解CSS3中nth-child与nth-of-type的区别
2017/01/05 HTML / CSS
Athleta官网:购买女士瑜伽服、技术运动服和休闲运动服
2020/11/12 全球购物
Linux开机引导的步骤是什么
2014/02/26 面试题
造型师求职自荐信
2013/09/27 职场文书
物业公司采购员岗位职责
2013/12/31 职场文书
公司授权委托书范本
2014/09/18 职场文书
财务总监岗位职责
2015/02/03 职场文书
搞笑婚礼主持词开场白
2015/11/24 职场文书
python实现学生信息管理系统(面向对象)
2022/06/05 Python