zoukankan      html  css  js  c++  java
  • php异常处理笔记

    <?php
    header("Content-type:text/html;charset=utf-8");
    // try
    // {
    //     //业务处理 错误时抛出异常。
    //     $age = 130;
    //     if ($age > 120) {
    //         throw new Exception('年龄不能大于120岁。', 1001);
    //     }
    // } catch (Exception $e) {
    //     $err = [
    //         'code' => $e->getCode(),
    //         'msg'  => $e->getMessage(),
    //         'file'    => $e->getFile(),
    //         'line'   => $e->getLine()
    //     ];
    //     echo json_encode($err,JSON_UNESCAPED_UNICODE);
    // }
    /**
    * 自定义异常处理
    */
    // class myException extends Exception
    // {
    //     //根据业务需求,自定义方法
    //     /**
    //      * 获取错误信息
    //      * @param int $type 类型 1=json 2=数组
    //      * @return array
    //      */
    //     public function getErrorInfo($type=1)
    //     {
    //         $err = [
    //             'code'=>$this->getCode(),
    //             'msg'=>$this->getMessage(),
    //             'file'=>$this->getFile(),
    //             'line'=>$this->getLine()
    //         ];
    //         if($type==1){
    //             return json_encode($err,JSON_UNESCAPED_UNICODE);
    //             exit();
    //         }
    //         return $err;exit();
    //     }
    // }
    
    
    
    
    //     try{
    //         $age = '130';
    //         if($age>120){
    //             throw new myException("年龄不能大于120岁。", 1001);
    //         }
    //     }catch(myException $e){
    //         $info = $e->getErrorInfo(1);
    //         var_dump($info);
    //     }catch(Exception $e){
    //         var_dump($e->getMessage);
    //     }
    
    
    //禁止错误输出
    error_reporting(0);
    //设置错误处理器
    set_error_handler('errorHandler');
    //在脚本结束时运行的函数
    register_shutdown_function('fatalErrorHandler');
    
    /**
     * 错误处理
     * @param int    $err_no      错误代码
     * @param string $err_msg  错误信息
     * @param string $err_file    错误文件
     * @param int    $err_line     错误行号
     * @return string
     */
    function errorHandler($err_no = 0, $err_msg = '', $err_file = '', $err_line = 0)
    {
        // $log = [
        //     '['.date('Y-m-d h-i-s').']',
        //     '|',
        //     $err_no,
        //     '|',
        //     $err_msg,
        //     '|',
        //     $err_file,
        //     '|',
        //     $err_line
        // ];
       var_dump($err_msg.' in '.$err_line);
        //echo implode(' ',$log)."<br>";
    }
    
    /**
     * 捕捉致命错误
     * @return string
     */
    function fatalErrorHandler() {
        $e = error_get_last();
        switch ($e['type']) {
            case 1:
                errorHandler($e['type'], $e['message'], $e['file'], $e['line']);
                break;
        }
    }
    
    class DemoClass_1
    {
        public function index()
        {
            //这里发生一个警告错误,出发errorHandler
            $ee=['1'=>2];
            echo $ee;
        }
    }
    
    $demo_1 = new DemoClass_1();
    //这里发生一个警告错误,被errorHandler 捕获
    $demo_1->index();
    //发生致命错误,脚本停止运行触发 fatalErrorHandler
    // $demo_2 = new DemoClass_2();
    // $demo_2->index();
  • 相关阅读:
    MySQL 实训篇
    MySQL 操作部分
    MySQL 数据库设计部分
    Python Excel及setuptool安装
    泛型? extents super
    js中立即执行
    js的闭包
    js作用域与作用域链
    js编译和执行顺序
    文件下载
  • 原文地址:https://www.cnblogs.com/qqlong/p/8991561.html
Copyright © 2011-2022 走看看