PHP中的错误处理和异常处理
错误处理:
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程序时,错误处理是一个重要的部分.如果程序中缺少错误检测代码,那么看上去很不专业,也为安全风险敞开了大门 例: <?php $a = fopen('test.txt','r'); / ...
- Yii中的错误及异常处理
Yii中的错误及异常处理 Yii已经默认已经在CApplication上实现了异常和错误的接管,这是通过php的set_exception_handler, set_error_handler实现的. ...
- 【PHP】解析PHP中的错误和异常处理
目录结构: contents structure [-] 错误级别 自定义处理器 设置异常日志 自定义异常类 在这篇文章中,笔者将会阐述PHP中的异常处理,希望能够对你有所帮助. 1.错误级别 PHP ...
- EBS OAF开发中的错误/异常处理(ErrorHandling) (转)
原文地址 EBS OAF开发中的错误/异常处理(ErrorHandling) EBS OAF开发中的错误/异常处理(ErrorHandling) (版权声明,本人原创或者翻译的文章如需转载,如转载用于 ...
- [erlang 001] erlang中的错误及异常处理
一. erlang中的错误 1. 分类 1) 编译错误:主要是编译器检测出的代码语法错误: 2) 逻辑错误:是指程序没有完成预期的工作,属于开发人员的问题: 3) 运行时错误:是指erlang运行时抛 ...
- PHP错误处理及异常处理笔记
给新人总结一下PHP的错误处理. PHP提供了错误处理和日志记录的功能. 这些函数允许你定义自己的错误处理规则,以及修改错误记录的方式. 这样,你就可以根据自己的需要,来更改和加强错误输出信息以满足实 ...
- Spring Boot中Web应用的统一异常处理
我们在做Web应用的时候,请求处理过程中发生错误是非常常见的情况.Spring Boot提供了一个默认的映射:/error,当处理中抛出异常之后,会转到该请求中处理,并且该请求有一个全局的错误页面用来 ...
- php中的错误和异常
总结: php错误不会抛出异常,因此不能被catch,但会根据配置写入日志文件或者输出到浏览器,所以可以通过日志文件查看错误 php异常都必须自己抛出,并通过catch捕捉.SQL语句执行的错误好像可 ...
- Python学习-16.Python中的错误处理
虽然叫错误,但跟 C# 中的异常是一回事.只不过 Python 中叫错误(Error)而 C# 中叫异常(Exception). 先手工产生一个异常: file = open('','r') 上面一句 ...
随机推荐
- [转载]JMeter源码导入Eclipse
转载自:http://www.cnblogs.com/taoSir/p/5144274.html 由于JMeter纯Java开发,界面也是基于Swing或AWT搞出来的,所以想更深层次的去了解这款工具 ...
- 第四周 技术随笔psp
本周psp 类型 内容 开始时间 结束 打断时间 净时间 写随笔 Scrum会议 23:46 00:27 0 41分
- AES算法
高级加密标准(Advanced Encryption Standard,AES),又称 高级加密标准Rijndael加密法,是美国联邦政府采用的一种区块加密标准.这个标准用来替代原先的DES,已经被多 ...
- Poj 1273 Drainage Ditches(最大流 Edmonds-Karp )
题目链接:poj1273 Drainage Ditches 呜呜,今天自学网络流,看了EK算法,学的晕晕的,留个简单模板题来作纪念... #include<cstdio> #include ...
- Javascript 严格模式详解(转)
一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode).顾名思义,这种模式使得Javascript在更严格的条件下运行. ...
- formvalidator4.1.3 使用过程中一些问题的解决
在使用formvalidator4.1.3 插件时 发现 正常情况调用时没有问题的,但是我们的项目中需要把css .js 之类的静态资源用单独的域名加载. 那么问题就来了在 该插件中 有一段这样的 ...
- Eclipse 汉化包
http://www.eclipse.org/babel/downloads.php 下载地址,具体操作请百度. http://subclipse.tigris.org/update_1.6.x SV ...
- eclipse ee 装oepe(Oracle Enterprise Pack for Eclipse)插件
eclipse j2ee 安装weblogic插件Oracle Enterprise Pack for Eclipse(oepe) eclipse j2ee已经集成了常见的几个服务器容器,比如tomc ...
- 部分SIM卡被曝存安全漏洞:7.5亿部手机受牵连
7月22日消息,据国外媒体报道,一安全研究人员发现部分移动SIM卡所使用的加密方式存在一个安全漏洞,可能会导致手机被黑客远程控制. DES数据加密标准的SIM卡——DES是一种较旧的标准,目前正被部分 ...
- UIKit-3347.44.2/UICollectionView.m:3443
Assertion failure in -[UICollectionView _dequeueReusableViewOfKind:withIdentifier:forIndexPath:viewC ...