注意: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 错误和异常处理的机制 错误处理器 错误触发器相关推荐

  1. 韩顺平php视频笔记80 81 错误日志 异常捕获

    php错误日志保存 保存错误日志的用处是便于,后续分析. 基本方法是使用 error_log来实现. 基本用法是: //自定义错误函数 function  my_error3($errno,$errm ...

  2. 韩顺平php视频笔记83-87 防盗链 $_SERVER http协议相关 文件相关

    第83集略(内容之前讲过) http协议 1. http协议是建立在  tcp/ip协议基础上. 2. 我们的web开发数据的传输都是依赖于http协议. 3. http协议全称是 超文本传输协议 h ...

  3. 韩顺平php视频笔记75-76 抽象类 接口

    抽象 为什么设计抽象类这个技术? 1. 在实际开发中,我们可能有这样一种类,是其它类的父类,但是它本身并不需要实例化,主要用途是用于让子类来继承,这样可以到达代码复用. 同时利于项目设计者,设计类. ...

  4. 韩顺平php视频笔记77 抽象类vs接口 关键字final const

    继承和实现接口的比较: (1) 可以认为 实现接口是对单一继承的补充. (2) 可以在不破坏类层级关系的前提下,对某个类功能扩展. ---------------------------------- ...

  5. 韩顺平php视频笔记72-74 面向对象编程的三大特征3 重载override与重写overload 魔术常量

    php中的重载感觉不是很完善 [注意]php不能以参数列表不同的形式来构成重载,构造方法同样也不行 PHP5 中如何通过魔术函数来实现方法重载的效果 代码说明 <?php class  A{ p ...

  6. 韩顺平php视频笔记71 面向对象编程的三大特征2 访问修饰符 继承

    php提供了三种访问控制符号. 有三种 1. public  表示全局,可以在本类,类外部,子类 中使用 2. protected 表示受到保护, 可以在本类, 子类中使用 3. private 表示 ...

  7. 韩顺平php视频笔记70 面向对象编程的三大特征1 抽象 封装

    php面向对象编程的三大特征 ① 封装 ② 继承 ③ 多态 class Account { public $blance; public $no; public function qun(){ } p ...

  8. 韩顺平php视频笔记69 静态变量与静态方法

    静态变量(类变量)与静态方法(类方法) 思路: 1. 使用全局变量 * 什么是全局变量, 在程序中,都可以使用的变量称为全局变量. 当我们了解全局变量后,我们来看看如何解决问题? <?php / ...

  9. 韩顺平php视频笔记68 析构函数 php垃圾回收机制

    以上注释取消后,对象析构方法执行顺序为: p1 p3 p2

最新文章

  1. Flume Sinks官网剖析(博主推荐)
  2. Windows 08 R2_NLB负载均衡(图文详解)
  3. hdu2435最大流最小割
  4. [UE4]C++中extern关键字浅谈
  5. mysql 免安装初始化_mysql免安装版配置步骤详解分享
  6. 基于51单片机电子时钟
  7. mysql 统计存在加1_mysql 假设存在id则设数据自添加1 ,不存在则加入。java月份计算比較...
  8. mt2503 用Dct tool打开codegen.dws提示版本 不match
  9. 最喜欢的一款星光和光晕ps笔刷
  10. android实现自动评论脚本,自动点击器评论器app下载
  11. 成都盛迈坤电商:店铺有效评价要怎么进行提升
  12. 数据库学习笔记2(补遗笔记1)
  13. ES6之Promise基本用法
  14. 如何通过 HTML+CSS+JS 制作焦点轮播图
  15. Vmware虚拟化概念原理
  16. SSH Agent Forwarding原理
  17. Python中用turtle库画哆啦A梦
  18. 洛谷【入门3】循环结构
  19. 长尾分布下的分类问题
  20. springboot+dubbo+validation 进行 rpc 参数校验

热门文章

  1. 图像阈值中的函数简述
  2. 「Luogu」[JSOI2007]字符加密 解题报告
  3. 从wait_type入手模拟SQL Server Lock
  4. poj 1325 Machine Schedule 最小顶点覆盖
  5. leetcode 179 python
  6. RTT时钟管理篇——阻塞延时和时基更新函数
  7. Java面向对象——基础1 类及类的成员
  8. PAT乙级(1008 数组元素循环右移问题)
  9. 跨考计算机报班,考研跨考的经验总结与分享
  10. MySQL高可用--MGR入门(2)组复制监控常用相关表