PHP关闭错误 - 仅在一个文件中

时间:2010-05-23 21:59:20

标签: php error-handling

我很清楚error_reporting(0);& ini_set('display_errors', "Off");使错误消息消失。

执行此操作的适当方法是什么 - 仅针对特定文件或部分代码? @s的压力错误似乎是一个坏主意,因为它显然减慢了代码的速度......

原因?我们在开发局域网中有许多memcached服务器由于网络设置而真的不可靠,因此我们每小时都会多次收到错误,除了停止使用内存缓存或关闭整个应用程序的错误外,我们无能为力,这将让我们头疼 - 在开发阶段的中间:)

4 个答案:

答案 0 :(得分:11)

<?php

    // normal code

    // error_reporting returns the old error code
    $old_error_reporting = error_reporting(0);

    // your errorful code

    // reset error_reporting to its old value
    error_reporting($old_error_reporting);

    // normal code

尽管修复实际导致错误的内容是个好主意。

答案 1 :(得分:3)

你有点回答了自己的问题。要为特定文件执行此操作,error_reporting(0);将关闭错误。我想你也可以在脚本中多次调用它。

您还可以使用php异常来“捕获”代码块上的错误。例如:

try {
    // code to ignore errors for here
} catch {
    // you can output a custom error here, but putting nothing here will effectively mean errors are ignored for the try block
}

脚本将继续运行通过try块,即使其中存在错误。有关详细信息,请参阅PHP Manual Entry

答案 2 :(得分:1)

您可以在运行时更改错误报告级别:

<?

   error_reporting(E_ALL);

   ... some code ....

   error_reporting(0);

   ... some more code ....

   error_reporting(E_ALL);

我不知道别的办法,但我想不出这种情况还不够的情况。你能吗?

答案 3 :(得分:0)

那是很久以前的事了,但像我这样的人可能会使用我的答案。

当我需要做这种事情的时候,我只是在变量前加上@,以便不显示来自这个变量的错误。

示例:

switch(@$var!="e") {

....

}