在try-catch语句中记录异常

时间:2014-07-18 13:24:49

标签: php exception logging try-catch

所以我有这样的代码:

    for($x=1;$x<=3;$x++)
    {   
        try
        {
            $c = new client($user_id, $ident);
            log("Client initialized successfully...");
            break;
        }
        catch (Exception $e)
        {
            log("Error in attempt($x)to init client");
        }
    }

我的问题是,是否有可能在行log("Client initialized successfully...");之后抛出异常?因为如果是,那么这意味着日志将同时具有初始化过程的成功和错误消息。从技术上讲,异常只应在新客户端对象初始化时才会出现,但我不确定......

3 个答案:

答案 0 :(得分:1)

嗯,是的,如果函数日志抛出异常,也可以,如果我是你,我会重命名函数名,因为已经有一个函数日志:

http://php.net/manual/en/function.log.php

答案 1 :(得分:0)

只有日志函数抛出异常才有可能。

或者,您可以将$success变量初始化为true。您在false中将其设置为catch。然后在整个try / catch块之后检查它。

答案 2 :(得分:0)

异常只能在行中抛出:

$c = new client($user_id, $ident);

log("Client initialized successfully...");

(我们不知道日志的功能)。

很奇怪,你尝试循环初始化对象3次 - 你在这里期待很多错误吗?