debug_backtrace final catch

 

<?php
function backtrace_str(){
        $str = '';
    $w = 0;
    $backtrace = debug_backtrace();
        foreach($backtrace as $arr){
        $str .= $w."\n";
        $w++;
                foreach($arr as $key=>$val){
                $str .=$key.'=>'.$val."\n";
                }
        }
        return $str;
}

 

 

 w

 

http://php.net/manual/en/language.oop5.final.php

PHP 5 introduces the final keyword, which prevents child classes from overriding a method by prefixing the definition with final. If the class itself is being defined final then it cannot be extended.

 

 

http://php.net/manual/zh/language.oop5.final.php

PHP 5 新增了一个 final 关键字。如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。

 

 

 

 

http://php.net/manual/en/language.exceptions.extending.php

w

<?php
class Exception
{
    protected $message = 'Unknown exception';   // exception message
    private   $string;                          // __toString cache
    protected $code = 0;                        // user defined exception code
    protected $file;                            // source filename of exception
    protected $line;                            // source line of exception
    private   $trace;                           // backtrace
    private   $previous;                        // previous exception if nested exception

    public function __construct($message = null, $code = 0, Exception $previous = null);

    final private function __clone();           // Inhibits cloning of exceptions.

    final public  function getMessage();        // message of exception
    final public  function getCode();           // code of exception
    final public  function getFile();           // source filename
    final public  function getLine();           // source line
    final public  function getTrace();          // an array of the backtrace()
    final public  function getPrevious();       // previous exception
    final public  function getTraceAsString();  // formatted string of trace

    // Overrideable
    public function __toString();               // formatted string for display
}

 

 

 

 

w

 

<?php
function inverse($x)
{
    if (!$x) {
        throw new Exception('Division by zero.');
    }
    return 1 / $x;
}

try {
    echo inverse(5) . "\n";
    echo inverse(0) . "\n";
} catch (Exception $e) {
    echo 'Caught exception: ', $e->getMessage(), "\n";
}

function w($w)
{
    try {
        echo inverse($w) . "\n";
        return 'w0';
    } catch (Exception $e) {
        echo 'Caught exception: ', $e->getMessage(), "\n";
    }
    return 'w1';
}

$w = w(5);
print_r($w);
$w = w(0);
print_r($w);

 

C:\>php D:\cmd\amzapi\amzapitest_com\MarketplaceWebServiceOrders\Samples\wd_learn.php
0.2
Caught exception: Division by zero.
0.2
w0Caught exception: Division by zero.
w1
C:\>

 

posted @ 2017-04-25 14:17  papering  阅读(224)  评论(0编辑  收藏  举报