zoukankan      html  css  js  c++  java
  • PHP 扑捉未处理异常 PHP

    PHP如何扑捉未处理异常

    class MyException extends Exception
    {
    	function MyException($message, Exception $ex = NULL)
    	{
    		$this->message = $message;
    		$this->innerException = $ex;
    	}
    	public $innerException = NULL;
    }
    
    
    function exception_handler($exception)
    {
    	$s = '<pre>' . var_export($exception, true) . '</pre>';
    	$s = str_replace("  ", "    ", $s);
    	echo "<b style=\"color:red;\">Uncaught exception</b> " , $s, "\n";
    	error_log($s);
    
    	// php.ini log_errors = On error_log = c:/php_errors.log display_errors = On
    }
    
    set_exception_handler('exception_handler');
    
    
    //error handler function
    function customError($errno, $errstr, $errfile, $errline)
    {
    	echo 'customError<br>';
    	throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
    }
    
    //set error handler
    set_error_handler("customError");
    
    function fnError($num, $div)
    {
    	return $num / $div;
    }
    $fn = 'fnError';
    //$i = $fn(123, 0);
    
    try
    {
    	try
    	{
    		$i = 0;
    		//throw new Exception("出错啦。");
    	}
    	catch (Exception $e)
    	{
    		echo "错误扑捉1";
    		throw new MyException("自定义错误1", $e);
    	}
    }
    catch (Exception $e)
    {
    	echo "错误扑捉2";
    	throw new MyException("自定义错误2", $e);
    }
    

    其他小技巧

    清除缓冲区 ob_clean(); 清除之前所有的echo输出。

    暂停3秒 sleep(3);

    获取页面执行时长:

    $running_time = time() - $_SERVER['REQUEST_TIME'];
    echo '页面运行时间:',$running_time,' 秒<br>';
    

    PHP中的常量

    define("D1", "dddd1");
    
    class MyClass1
    {
    	const APP_NAME = "app";
    }
    
    echo MyClass1::APP_NAME;
    echo D1;
    constant("D1");
    constant("MyClass1::APP_NAME");
    

    PHP的Session

    session_start();
    if ( isset($_SESSION['SID']) )
    {
    	echo $_SESSION['SID'];
    }
    
    $_SESSION["SID"] = "SESSION" . time();
    
    //session_destroy();
    //session_commit();
    

    设置COOKIE setcookie("tt", "cookie");

    输出变量内容

    $s = var_export($_REQUEST, TRUE);
    echo "<pre>$s</pre>";
    

      

  • 相关阅读:
    堆排序算法
    归并排序的递归算法与非递归
    二叉排序树(BST)的建立
    枚举排列的两种常见方法
    UVa 439骑士的移动(BFS)
    UVa 二叉树重建(先序+中序求后序)
    UVa 四叉树
    UVa 10562看图写树(二叉树遍历)
    JDBC(6)事务处理&批量处理
    JDBC(5)ResSetMetaData&DatabaseMetaData&获取数据库主键的值
  • 原文地址:https://www.cnblogs.com/zjfree/p/2934297.html
Copyright © 2011-2022 走看看