浅谈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的输入输出流
Feb 14 PHP
php文件上传表单摘自drupal的代码
Feb 15 PHP
提示Trying to clone an uncloneable object of class Imagic的解决
Oct 27 PHP
浅析使用Turck-mmcache编译来加速、优化PHP代码
Jun 20 PHP
浅析PHP中的字符串编码转换(自动识别原编码)
Jul 02 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
Mar 13 PHP
使用Thinkphp框架开发移动端接口
Aug 05 PHP
Yii中srbac权限扩展模块工作原理与用法分析
Jul 14 PHP
thinkPHP模板引擎用法示例
Dec 08 PHP
Redis在Laravel项目中的应用实例详解
Aug 11 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
Aug 30 PHP
php基于Redis消息队列实现的消息推送的方法
Nov 28 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 使用post,get的一种简洁方式
2010/04/25 PHP
从php核心代码分析require和include的区别
2011/01/02 PHP
跟我学Laravel之请求与输入
2014/10/15 PHP
PHP实现自动识别Restful API的返回内容类型
2015/02/07 PHP
php简单实现批量上传图片的方法
2016/05/09 PHP
详解PHP中的 input属性(隐藏 只读 限制)
2017/08/14 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
2019/10/30 PHP
字符串的replace方法应用浅析
2011/12/06 Javascript
js jquery获取当前元素的兄弟级 上一个 下一个元素
2015/09/01 Javascript
jquery获取css的color值返回RGB的方法
2015/12/18 Javascript
javascript获取wx.config内部字段解决微信分享
2016/03/09 Javascript
Angularjs中controller的三种写法分享
2016/09/21 Javascript
Bootstrap框架的学习教程详解(二)
2016/10/18 Javascript
jQuery复合事件用法示例
2017/06/10 jQuery
Angular实现响应式表单
2017/08/04 Javascript
webpack多入口文件页面打包配置详解
2018/01/09 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
vue移动端使用appClound拉起支付宝支付的实现方法
2019/11/21 Javascript
jQuery实现简易聊天框
2020/02/08 jQuery
[01:30]我们共输赢 完美世界城市挑战赛开启全新赛季
2019/04/19 DOTA
Python实现子类调用父类的方法
2014/11/10 Python
Python open()文件处理使用介绍
2014/11/30 Python
Django发送邮件和itsdangerous模块的配合使用解析
2019/08/10 Python
dpn网络的pytorch实现方式
2020/01/14 Python
Python 如何对文件目录操作
2020/07/10 Python
python基于win32api实现键盘输入
2020/12/09 Python
一句话工作感言
2014/03/01 职场文书
大学生2014全国两会学习心得体会
2014/03/10 职场文书
初一学生期末评语
2014/04/24 职场文书
诉前财产保全担保书
2014/05/20 职场文书
2014物价局群众路线对照检查材料思想汇报
2014/09/21 职场文书
领导班子对照检查材料
2014/09/22 职场文书
2015年度村委会工作总结
2015/04/29 职场文书
地道战观后感2000字
2015/06/04 职场文书
航班延误投诉信
2015/07/02 职场文书