代码之家  ›  专栏  ›  技术社区  ›  aWebDeveloper

PHP使用exit()

  •  3
  • aWebDeveloper  · 技术社区  · 14 年前

    letting the view display the message
    

    echo 'Invalid Data'; exit;
    

    我想知道在第二种情况下是否有内存泄漏等缺陷。。哪一个更好

    在ajax调用的情况下,退出是好的。还有内存泄漏和其他问题。所有变量都被释放了吗

    4 回复  |  直到 11 年前
        1
  •  6
  •   halfdan    14 年前

    您应该使用一个定制的异常处理程序(set\u error\u handler/set\u exception\u handler),并在遇到任何错误时抛出一个异常(CakePHP应该已经提供了一个异常处理程序)。在视图中留出一些空间,如果ExceptionHandler/ErrorHandler有一条消息,则在那里显示它以让用户知道。

    第二个代码只会生成一个包含小文本的空白页。如果您在通常的页面布局中显示消息,而不是生成一个空白页面(在大多数人看来,这个页面是破损的),那么每个用户都会很感激。

        2
  •  3
  •   deceze    14 年前

    向用户发送错误信号的工具是会话消息和错误视图。

    对于“被动”操作(如视图操作),您应该抛出404或类似的、可能更专业的错误,例如,如果请求的模型不存在:

    function view($id) {
        $data = $this->Model->read(null, $id);
        if (!$data) {
            $this->cakeError('error404');
        }
    
        ...
    }
    

    看到了吗 Error Handling with CakePHP .

    对于任何POST操作,您应该将用户返回到视图并使用显示错误消息 $this->Session->setFlash('Error!') 以及每个无效表单字段的相应错误消息。这是烘焙视图和控制器的默认行为。

    终止整个脚本 exit 造成了糟糕的用户体验。

        3
  •  0
  •   user187291    14 年前

    一般来说,你应该避免 exit Exit 是一个 终止,程序不应异常终止。即使发生错误,仍然有许多事情需要做-清理,记录,通知用户等毕竟,你的操作系统不会每次重新启动时,它无法打开一个文件。

        4
  •  0
  •   Frankie    14 年前

    性能方面

    使用 exit()


    用户体验方面 (标准站点导航)

    在格式正确的页面中显示错误,将用户保留在站点中。