码迷,mamicode.com
首页 > Web开发 > 详细

PHP-错误处理

时间:2018-03-16 13:31:06      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:png   bsp   图片   调用   ima   gpo   级别   年龄   判断   

PHP 5 预定义错误和日志常量

     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

 

 

 

 

 

 

 

 

 

 

 

 

打开一个不存在的文件

<?php
/** * Coded by MuT6 Sch01aR
 * Date: 2018/3/12 22:30
 */

	$fp = fopen(‘test.txt‘,‘r‘);
	echo ‘ok‘;
	
?>

 运行结果技术分享图片

报了一个文件不存在的警告,后面的ok成功打印

使用die()方法处理错误

执行完die()方法后程序会退出

<?php
/**
 * Coded by MuT6 Sch01aR
 * Date: 2018/3/12 22:30
 */

    //使用die()方法处理
    if (!file_exists(‘test.txt‘)){  //判断文件是否存在
        die(‘不存在文件!‘);
    }
    
    //die()方法的另一个更简便的写法
    file_exists(‘test.txt‘) or die(‘不存在文件!!!‘)

?>

 运行结果

技术分享图片

自定义错误处理函数

自己定义错误处理的函数来处理程序的错误

<?php
/**
 * Author: MuT6 Sch01aR
 * Date: 2018/3/13
 * Time: 12:12
 */

    //定义一个错误处理函数
    function my_error($errno, $errmsg){  // $errno为错误号,$errmsg为错误信息
        echo ‘错误号:‘.$errno."\n";
        echo ‘错误信息:‘.$errmsg;
    }

    //改写set_error_handler处理器,调用错误处理函数my_error处理级别为E_WARNING的错误
    set_error_handler(‘my_error‘, E_WARNING);

    $fp = fopen(‘test.txt‘,‘r‘);  //打开一个不存在的文件

?>

 运行结果

技术分享图片

错误触发器

错误触发器可以处理一些特定的错误

<?php
/**
 * Author: MuT6 Sch01aR
 * Date: 2018/3/13
 * Time: 12:41
 */

    $age = 121;
    if ($age > 120){
        //调用系统的触发器
        trigger_error(‘年龄过大‘,E_USER_WARNING);
        exit();
    }

?>

 运行结果

技术分享图片

系统触发器处理了特定的错误

也可以自己定义错误触发器

<?php
/**
 * Author: MuT6 Sch01aR
 * Date: 2018/3/13
 * Time: 12:41
 */

    //定义一个错误触发器
    function my_error($errno, $errmsg){
        echo ‘错误号:‘.$errno."\n";
        echo ‘错误信息:‘.$errmsg;
    }

    set_error_handler(‘my_error‘, E_USER_WARNING);

    $age = 121;
    if ($age > 120){
        //调用系统的触发器
        trigger_error(‘年龄过大‘,E_USER_WARNING);
        exit();
    }

?>

 运行结果

技术分享图片

错误日志

错误日志用来记录程序运行时的错误

<?php
/**
 * Author: MuT6 Sch01aR
 * Date: 2018/3/13
 * Time: 12:02
 */

    function my_error($errno, $errmsg){
        echo ‘错误号:‘.$errno.‘----‘.‘错误信息:‘.$errmsg;
        $error_msg = ‘错误号:‘.$errno.‘----‘.‘错误信息:‘.$errmsg;
        date_default_timezone_set("Asia/Chongqing");
        $error_time = date(‘Y-m-d G:i:s‘);
        error_log(‘[‘.$error_time.‘]‘.$error_msg."\n",3,"log.txt");
    }

    set_error_handler(‘my_error‘);

    function Guess_Age($age){
        if($age> 120){
            trigger_error(‘年龄过大‘); //触发错误
        }
    }

    Guess_Age(123);
?>

 运行结果

技术分享图片

生成了一个记录错误的日志文件

技术分享图片

 

PHP-错误处理

标签:png   bsp   图片   调用   ima   gpo   级别   年龄   判断   

原文地址:https://www.cnblogs.com/sch01ar/p/8580443.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!