php笔记(错误,异常)

处理脚本让浏览器按照指定字符集解析的方法
header(‘Content-type:text/html;charset=utf-8’);
错误分类(异常)
1.语法错误:(parse error)
2.运行错误:(runtime error)
3.逻辑错误:程序员写代码不够规范,得不到想要的结果
错误代号
所有看到的错误代码在php中都被定义成了系统常量(可以直接被使用)
1.系统错误
	E_PARSE:编译错误,代码不执行
	E_ERROR:fatal error,致命错误,会导致代码不能正确继续执行(出错的位置断掉)
	E_WARNING:warning,警告错误,不影响代码执行,但是可能得到意想不到的结果
	E_NOTICE:notice,通知错误,不会影响代码执行
2.用户错误
	E_USER_ERROR,E_USER_WARNING,E_USER_NOTICE
3.其他:E_ALL,代表着所有错误
如果想要对一些错误进行控制,可以使用位运算符
排除通知级别notice:E_ALL & ~E_NOTICE		
只要警告和通知:	E_WARNING | E_NOTICE
错误触发
人为触发:类似于try..catch..
	使用trigger_error()函数
错误显示设置
哪些错误该显示,哪些该如何显示
设置方法:
	1.PHP的配置文件:全局配置 php.ini
		Dispkay_errors:是否显示错误
		Error_reporting:显示什么级别的错误.
	2.在运行中的php脚本中设置: 配置级别比配置文件高(通常在代码中控制 )
		Error_reporting():	设置对应的错误显示级别。
		Ini_set(‘配置文件中的配置项’,配置值)
		Ini_set('error_reporting',E_ALL);
		Ini_set('display_errors',1);
	3.将错误日志保存在文件中
		1.开启错误日志:log_errors = On
		2.配置错误日志的路径 :error_log = 路径名

在这里插入图片描述
在这里插入图片描述

自定义错误处理
php系统提供了一种用户处理错误的机制:用户自定义处理函数,然后将该函数增加错做系统错误处理的句柄中,然后系统会在碰到错误之后,使用用户定义的错误函数
1.set_error_handler()函数,将用户自定义的函数放到系统中
<?php

    //解决中文乱码
    header('Content-type:text/html;charset=uft-8');

    //自定义错误处理机制
    //自定义函数
/**
 * @param $errno 是系统提供的错误代码 E_ALL,E_NOTICE..
 * @param $errstr
 * @param $errfile
 * @param $errline
 * @param $errcontext
 * @return false
 */
    function my_error($errno,$errstr,$errfile,$errline,$errcontext){
        //判断:当前会碰到错误有哪些
        if (!(error_reporting() & $errno)){
            return false;
            //error_reporting没有参数代表获取当前系统错误处理对应的级别
        }
        //开始判断错误类型
        switch ($errno){
            case E_ERROR:
            case E_USER_ERROR:
                echo 'fatal error in file ' . $errfile . ' on line ' . $errline . '<br/>';
                echo 'error info : ' . $errstr;
                break;
            case E_WARNING:
            case E_COMPILE_WARNING:
                echo 'WARNING error in file ' . $errfile . ' on line ' . $errline . '<br/>';
                echo 'error info : ' . $errstr;
                break;
            case E_NOTICE :
            case E_USER_NOTICE:
                echo 'E_NOTICE error in file ' . $errfile . ' on line ' . $errline . '<br/>';
                echo 'error info : ' . $errstr;
                break;
        }
        return true;
    }

    //错误
    echo $a;
    //修改错误机制
    set_error_handler('my_error');

    echo $a;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值