由于教程是围绕着文件打开做的错误处理,所以先记录几个用于文件处理的一些函数,fopen 用于打开一个文件;file_exists 用于检查目录是否存在;fclose( $变量 )用于指定关闭打开的文件;

  PHP处理错误的几种方式:die()语句;自定义错误和错误触发器;错误日志;

  die()语句:

    eg :file_exists ( “文件路径/文件名” ) or die( "文件不存在" );

  自定义错误处理器(函数)

    基本语法:首先定义一个错误函数,然后改写set_error_handler处理器;

    error_function( error_level , error_massage, error_file , error_line , error_context);

    //这里的error_level , error_massage 是必要的,后面的三个参数是可选的;

    set_error_handler( “ 错误函数名 ” , 错误等级);

    

     //  eg:fuction  my_error( $errno , $errmes ){         //定义错误函数

          echo   $errno . “错误信息是:” . $errmes ;

        }

        set_error_handler( "my_error" , E_USER_WARNING );

        //这里改写了user_warning的错误处理器,如需要定义其他级别错误需要分别定义错误等级;一般自定义错误处理器都是定义user级别的错误;

        $age=200;

        if( $age > 120 ){

          //调用错误处理器;

          trigger_error( " 输入年龄过大 " , E_USER_WARNING);   //trigger_error函数默认是NOTICE级别,如有需要必须自定义错误级别;  

        }

  PHP错误日志保存

    基本语法:error_log( 错误信息  ,destination_type , " 错误日志保存位置及文件名 " );

        date_default_timezone_set( “ Asia/ChongQing ” );    //这里定义一个时区,后面的错误信息插入时间方便日后阅读错误日志;也可在php.ini中更改默认设置date.timezone选项;

      //  eg:fuction  my_error( $errno , $errmes ){         //定义错误函数

           $error_info = $errno . “错误信息是:” . $errmes ;

           error_log( " 时间是 " . date( " Y - m - d G - i - s " ) $error_info ." \r\n " , 3 , "XXX.txt" );             //  \r\n是txt文件里的换行符,destination_type 这里大多数情况下使用3追加记录日志模式;

        }

  PHP中的异常处理

    基本语法:

    try{

      可能出现的错误的代码;

    }catch( Excepion $e ){

      1.自己处理;2.自己不处理,抛出;

    }

    throw new Excepion( “异常信息提示” );         //  throw用于抛出异常;

    当捕获到一个异常以后,try()块里的代码将不再继续执行;

    catch( Excepion $e ){

      //这里可以使用函数调用错误信息,行号,异常代码等等,详细参数如下图所示;

      echo  $e ->  getMessage() ;

    }

    

    当异常继续被抛出,而又没有catch接受异常,PHP会调用默认的顶级异常处理器,顶级异常处理器也可以自定义;

    function my_exception( $e ){      //自定义顶级异常处理器函数

      echo  错误信息  . $e -> getMessage();    //也可以使用上图其他函数;

    }

    set_exception_handler( " 顶级异常处理器函数名 " ) ;  //修改默认顶级处理器(函数)

    

PHP的错误处理和异常处理的更多相关文章

  1. [python]错误检测及异常处理try-except

    1. 简介 要给代码添加错误检测及异常处理,只需要将其封装在try-except中. try:通常的代码 except:处理错误和异常的代码 2. 示例 import os try: path = ' ...

  2. PHP中的错误处理、异常处理机制详解

    在编写PHP程序时,错误处理是一个重要的部分.如果程序中缺少错误检测代码,那么看上去很不专业,也为安全风险敞开了大门 例: <?php $a = fopen('test.txt','r'); / ...

  3. PHP基础之 错误处理 及 异常处理

    错误处理: 1.使用die()方法,结束语句的执行,并输出错误消息 2.自定义错误和错误触发器 自定义错误处理函数(系统有默认的错误处理函数,自定义的错误处理会覆盖默认的处理函数) ========= ...

  4. PHP中的错误处理和异常处理

    错误处理:    1.语法错误    2.运行时的错误    3.逻辑错误 错误报告:        错误E_ERROR        警告E_WARNING        注意E_NOTICE 开发 ...

  5. PHP错误处理及异常处理笔记

    给新人总结一下PHP的错误处理. PHP提供了错误处理和日志记录的功能. 这些函数允许你定义自己的错误处理规则,以及修改错误记录的方式. 这样,你就可以根据自己的需要,来更改和加强错误输出信息以满足实 ...

  6. php错误处理和异常处理

    PHP错误处理有两种:标准的错误处理和异常(OOP语法新出现的错误处理机制)

  7. java程序错误类型及异常处理

    一.程序的错误类型 在程序设计中,无论规模是大是小,错误总是难免的.程序的设计很少有能够一次完成,没有错误的(不是指HelloWorld这样的程序,而是要实现一定的功能,具备一定实用价值的程序),在编 ...

  8. python的错误类型和异常处理

    # isinstance() # 判断实例a是否属于类b # issubclass() # 判断类a是否为类b的派生类 # 异常处理 try: pass #Exception是错误类型,能catch到 ...

  9. 一,php的错误处理和异常处理

    php程序中如果语法或逻辑错误,会引起php默认错误处理机制,不会引起异常处理机制,只有在程序中throw抛出异常后,如果没有catch捕捉异常,默认调用php默认异常处理. php有默认错误机制和默 ...

  10. 小议C#错误调试和异常处理

    在程序设计中不可避免地会出现各种各样的错误,在编写代码时须要尽量避免. 在处理错误时,首先应该分析错 误的类型,找出出错的原因才干解决错误. 错误的分类 watermark/2/text/aHR0cD ...

随机推荐

  1. GEF入门笔记

    最近项目中需要用到Eclipse GEF框架进行画图,故将平时学习笔记更新到博客中,便于查阅 自己画的一个GEF基本结构     最基本流程 1.创建model(包括数据域.在界面中的布局.图片索引等 ...

  2. cms初步构想

    一.cms系统的初步构想 公司正准备使用yii框架重新弄个类cms的系统: 初步的功能: 栏目文章的管理 SEO的优化功能 推荐位管理 一些思路和规则: 数据库表名的定义:通过"大模块名称+ ...

  3. PhotoZoom Classic 7有什么用?高品质的放大模糊图片!

    PhotoZoom Classic 7专门用于放大照片,同时保持质量.该软件配备了BenVista独特的S-Spline技术,可轻松超越Photoshop的双三次插值等替代解决方案. PhotoZoo ...

  4. PySimpleGUI 的第一个桌面软件

    最近学习了python风格的GUI模块,寻思着既然学了,就要学以致用,花了点时间,写了下面这个 简历软件.后面,可以通过接口 获取提交的数据,传到数据库里与网页交互.此软件我已经打包成 exe软件,直 ...

  5. [poj2288] Islands and Bridges (状压dp)

    Description Given a map of islands and bridges that connect these islands, a Hamilton path, as we al ...

  6. P3378 【模板】堆

    题目描述 如题,初始小根堆为空,我们需要支持以下3种操作: 操作1: 1 x 表示将x插入到堆中 操作2: 2 输出该小根堆内的最小数 操作3: 3 删除该小根堆内的最小数 输入输出格式 输入格式: ...

  7. [noip2011]计算系数+二项式定理证明

    大水题,二项式定理即可(忘得差不多了) 对于一个二项式,\((a+b)^n\)的结果为 \(\sum_{k=0}^{k<=n}C_{n}^{k}a^{n-k}b^k\) 证明: 由数学归纳法,当 ...

  8. 2、Ansible配置文件详解

    0.配置文件 两个核心文件:ansible.cfg和hosts文件,默认都存放在/etc/ansible目录下. ansible.cfg:主要设置一些ansible初始化的信息,比如日志存放路径.模块 ...

  9. 【Codeforces 276C】Little Girl and Maximum Sum

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 最后的和. 其实可以看成是 ∑bi*ai 的形式. 这里的bi这个系数表示的是有多少个区间覆盖了ai这个元素. 既然这样的话. 那么 ...

  10. 【Codeforces Round #507 (Div. 2, based on Olympiad of Metropolises) A】Palindrome Dance

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] i从1..n/2循环一波. 保证a[i]和a[n-i+1]就好. 如果都是2的话填上min(a,b)*2就好 其他情况跟随非2的. ...