韩顺平php视频笔记79 80 错误和异常处理的机制 错误处理器 错误触发器

来源:互联网 发布:php推送消息到app 编辑:程序博客网 时间:2024/05/22 17:24

 注意: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";

 

原理图



0 0
原创粉丝点击