韩顺平php视频笔记79 80 错误和异常处理的机制 错误处理器 错误触发器
注意:php中
php中错误和异常处理的机制
如果没有错误处理机制怎样?
<?php
//打开文件-
$fp=fopen(“aaa.txt”,”r”);
echo “ok”;
?>
上面的代码没有处理错误,应当这样写程序更加健壮.
<?php
//$fp=fopen("aaa.txt","r");
//echo "ok";
//1.判断文件是否存在.
//2. 绝对路径和相对路径
if(!file_exists("aaa.txt")){
echo "文件不存在!";
exit();
}else{
$fp=fopen("aaa.txt","r");
echo "文件打开成功";
//....关闭
fclose($fp);
}
?>
☞ 解释了一下绝对路径和相对路径
php处理错误的三种方法
1. 使用简单的die 语句
使用方法如下 :
(1)
if(!file_exists("aaa.txt")){
die("文件不存在");
}else{
//打开文件操作
}
echo "ok";
(2) 更简单的方法
file_exists("aaa.txt") or die("文件不存在!!!");
--------------------------------------------------------------------------------------------------------------------------------------
u 用户自定义错误处理器
在php中对错误有不同的级别区分:
案例入门 :
<?php
//定义了一个函数(我用于处理错误的函数)
function my_error($errno,$errmes){
echo "<font size='5' color='red'>$errno</font><br/>";
echo "错误信息是:";
exit();
}
//改写set_error_handler处理器
//下面这句话的含义是 : 如果出现了 E_WARNING这个级别的错误,就去调用my_error函数.
set_error_handler("my_error",E_WARNING);
$fp=fopen("aa.txt","r");
?>
原理图:
-----------------------------------------------------------------------------------------------------------------------------------------------------
错误触发器
需求: 有一段代码: 如果接受一个年龄, 如果年龄输入>120, 我认为就是一一个错误.
//传统的方法
if($age>120){
echo “年龄过大”;
exit();
}
//需求,输入一个薪水,如果大于10000,我认为有是错误.
if($salary>10000){
echo “薪水多”;
exit();
}
1现在我们可以使用自定义错误触发器来完成!
快速入门案例:
//自定义错误函数
function my_error3($errno,$errmes){
echo "错误号是:".$errno;
}
function my_error4($errno,$errmes){
echo "出大事了".$errno;
exit();
}
//指定E_USER_WARNING 错误级别的函数
set_error_handler("my_error3",E_USER_WARNING);
set_error_handler("my_error4",E_USER_ERROR);
$age=700;
if($age>120){
//调用触发器,时候同时指定错误级别.
trigger_error("输入年龄过大1",E_USER_ERROR);
//exit();
}
echo "ok";
原理图
韩顺平php视频笔记79 80 错误和异常处理的机制 错误处理器 错误触发器相关推荐
- 韩顺平php视频笔记80 81 错误日志 异常捕获
php错误日志保存 保存错误日志的用处是便于,后续分析. 基本方法是使用 error_log来实现. 基本用法是: //自定义错误函数 function my_error3($errno,$errm ...
- 韩顺平php视频笔记83-87 防盗链 $_SERVER http协议相关 文件相关
第83集略(内容之前讲过) http协议 1. http协议是建立在 tcp/ip协议基础上. 2. 我们的web开发数据的传输都是依赖于http协议. 3. http协议全称是 超文本传输协议 h ...
- 韩顺平php视频笔记75-76 抽象类 接口
抽象 为什么设计抽象类这个技术? 1. 在实际开发中,我们可能有这样一种类,是其它类的父类,但是它本身并不需要实例化,主要用途是用于让子类来继承,这样可以到达代码复用. 同时利于项目设计者,设计类. ...
- 韩顺平php视频笔记77 抽象类vs接口 关键字final const
继承和实现接口的比较: (1) 可以认为 实现接口是对单一继承的补充. (2) 可以在不破坏类层级关系的前提下,对某个类功能扩展. ---------------------------------- ...
- 韩顺平php视频笔记72-74 面向对象编程的三大特征3 重载override与重写overload 魔术常量
php中的重载感觉不是很完善 [注意]php不能以参数列表不同的形式来构成重载,构造方法同样也不行 PHP5 中如何通过魔术函数来实现方法重载的效果 代码说明 <?php class A{ p ...
- 韩顺平php视频笔记71 面向对象编程的三大特征2 访问修饰符 继承
php提供了三种访问控制符号. 有三种 1. public 表示全局,可以在本类,类外部,子类 中使用 2. protected 表示受到保护, 可以在本类, 子类中使用 3. private 表示 ...
- 韩顺平php视频笔记70 面向对象编程的三大特征1 抽象 封装
php面向对象编程的三大特征 ① 封装 ② 继承 ③ 多态 class Account { public $blance; public $no; public function qun(){ } p ...
- 韩顺平php视频笔记69 静态变量与静态方法
静态变量(类变量)与静态方法(类方法) 思路: 1. 使用全局变量 * 什么是全局变量, 在程序中,都可以使用的变量称为全局变量. 当我们了解全局变量后,我们来看看如何解决问题? <?php / ...
- 韩顺平php视频笔记68 析构函数 php垃圾回收机制
以上注释取消后,对象析构方法执行顺序为: p1 p3 p2
最新文章
- Flume Sinks官网剖析(博主推荐)
- Windows 08 R2_NLB负载均衡(图文详解)
- hdu2435最大流最小割
- [UE4]C++中extern关键字浅谈
- mysql 免安装初始化_mysql免安装版配置步骤详解分享
- 基于51单片机电子时钟
- mysql 统计存在加1_mysql 假设存在id则设数据自添加1 ,不存在则加入。java月份计算比較...
- mt2503 用Dct tool打开codegen.dws提示版本 不match
- 最喜欢的一款星光和光晕ps笔刷
- android实现自动评论脚本,自动点击器评论器app下载
- 成都盛迈坤电商:店铺有效评价要怎么进行提升
- 数据库学习笔记2(补遗笔记1)
- ES6之Promise基本用法
- 如何通过 HTML+CSS+JS 制作焦点轮播图
- Vmware虚拟化概念原理
- SSH Agent Forwarding原理
- Python中用turtle库画哆啦A梦
- 洛谷【入门3】循环结构
- 长尾分布下的分类问题
- springboot+dubbo+validation 进行 rpc 参数校验