首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >你能防止php while循环出错吗?

你能防止php while循环出错吗?
EN

Stack Overflow用户
提问于 2010-06-29 01:42:00
回答 1查看 425关注 0票数 1

我想知道是否有一种方法可以防止while循环过早出错或终止。我在那里抛出了一个try/catch,它似乎一直在终止。(至于终止的原因,我还在调试中)。

代码语言:javascript
运行
复制
    $stomp = $this->stomp;
    if(isset($queue) && strlen($queue) > 0) {
        error_log('Starting Monitor for: '.$queue);
        $stomp->subscribe($queue);

        while(true) {       
            $frame = $stomp->readFrame();
            if ($frame != null) { 
                // Callback must be an array: array('Class','Method);
                if(is_array($callback) && count($callback) == 2) {
                    try {
                        $body = $frame->body;                           
                        $callFunct = call_user_func_array($callback,array($body,$arguments));   
                        $stomp->ack($frame);                                
                    } catch(StompException $e) {
                        $msg = 'Stomp Monitor readFrame() Callback Fail: '.$e->getMessage();
                        $this->context->reportError('STOMP',array('errorDetails'=>$msg));
                    }
                } else {
                    error_log('Invalid Stomp Callback');
                }
            }
        }
    }   `

谢谢,史蒂夫

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-29 02:48:45

没有什么可以中断循环,因此while(true)将一直运行,直到它遇到超时或某种形式的错误条件。作为后备,值得设置一个break来中断on条件的循环,或者使用一个可以设置为false的while条件;

代码语言:javascript
运行
复制
while (true) {
   // do some things
   break;
}

代码语言:javascript
运行
复制
$x = true;
while ($x) {
   // do some things
   $x = false;
}

这样,退出循环就在你的控制之下了。

但是,如果您的代码正在中断while循环,那么超时和其他致命错误仍然会照常终止脚本,您应该会看到一些错误,除非您有一个错误处理程序来抑制它

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3134755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档