• 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();
  • 相关阅读:
    Flink中的window、watermark和ProcessFunction(三)
    ThreadLocal刨根问底
    Flink的流处理API(二)
    Flink简介(一)
    SparkStreaming
    SparkSQL
    Spark入门
    SparkCore
    【HNOI2009】 最小圈
    【BOI 2002】 双调路径
  • 原文地址:https://www.cnblogs.com/qqlong/p/8991561.html
Copyright © 2020-2023  润新知