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