首页 > Web开发 > 详细

PHP: 异常exception

时间:2014-03-14 18:34:01      阅读:473      评论:0      收藏:0      [点我收藏+]

异常最常见于SDK调用中,函数执行失败时抛出异常,顺带错误码和错误信息。

先来看下PHP的异常处理相关函数:

bubuko.com,布布扣
public Exception::__construct() ([ string $message = "" [, int $code = 0 [, Exception $previous = NULL ]]] )

构造函数:第一个参数$message为错误信息,第二个参数$code为错误码,第三个参数$previous为前一个异常
bubuko.com,布布扣

函数组:

bubuko.com,布布扣
获取异常的错误码:
final public mixed Exception::getCode ( void )
获取异常的错误信息:
final public string Exception::getMessage ( void )
获取异常发生的文件信息:
final public string Exception::getFile ( void )
获取异常发生在文件的哪一行
final public int Exception::getLine ( void )
获取前一个异常信息:
final public Exception Exception::getPrevious ( void )
bubuko.com,布布扣

最常用的是getCode和getMessage函数。

实例1:

bubuko.com,布布扣
<?php
class test
{
    public function run($num)
    {   
        try{
            $this->process($num);
        } catch (Exception $e) {
            echo sprintf("Errno:%d Error:%s", $e->getCode(), $e->getMessage());
        }   
    }   

    public function process($num)
    {   
        switch($num) {
        case 1: throw new Exception("error", $num);break;
        default:return $num;
        }   
        return;
    }   
}

$app = new test();
$app->run(1);
bubuko.com,布布扣

输出:

bubuko.com,布布扣
Errno:1 Error:error
bubuko.com,布布扣

问题1:异常被抛出后之后的流程会不会执行?答案是:不会的,函数在抛出异常处返回,注意在获取异常处是会继续执行的。

实例2

bubuko.com,布布扣
<?php
class test
{
    public function run($num)
    {
        try{
            $this->process($num);
        } catch (Exception $e) {
            echo sprintf("Errno:%d Error:%s", $e->getCode(), $e->getMessage());
        }
    }

    public function process($num)
    {
        switch($num) {
        case 1: throw new Exception("error", $num);echo "new exception\n";break;
        default:return $num;
        }
        return;
    }
}

$app = new test();
$app->run(1);
bubuko.com,布布扣

输出结果:

bubuko.com,布布扣
Errno:1 Error:error
bubuko.com,布布扣

注意:throw之后的echo语句没有被执行。

 

关于更多Exception的主题说明:http://docs.oracle.com/javase/tutorial/essential/exceptions/advantages.html

PHP: 异常exception,布布扣,bubuko.com

PHP: 异常exception

原文:http://www.cnblogs.com/helww/p/3599110.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!