在try-catch语句中记录异常


logging exception in try-catch statement

代码如下:

    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...");行之后抛出异常?因为如果是,那么这将意味着日志将包含初始化过程的成功和错误消息。从技术上讲,异常应该只在初始化新客户端对象时才会出现,但我不确定……

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

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

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

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

异常只能在以下行中抛出:

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

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

(我们不知道函数日志是做什么的)

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