禁用PHP中的错误

时间:2009-11-05 16:14:35

标签: php error-handling

如何为特定的php函数禁用错误,同时知道错误发生了?例如,我使用一个php函数parse_url来解析一个url数组,有时它会返回一个错误,我想要做的是一旦发生错误就解析下一个url,而不是在屏幕上显示它(错误)。 / p>

7 个答案:

答案 0 :(得分:3)

您可能需要查看set_error_handler()

您可以执行任何想要注册自己的处理程序的事情。

答案 1 :(得分:2)

@是邪恶的。

您可以使用:

try {
  // your code
} catch (Exception $e) {
  // a block that executed when the exception is raised
}

答案 2 :(得分:2)

函数之前的@符号将抑制错误消息,而parse_url()在出错时返回false,所以只需捕获它。

 if(@parse_url($url) === false) {
        //Error has been caught here
    }

答案 3 :(得分:1)

听起来像是在寻找自定义错误处理程序

http://php.net/manual/en/function.set-error-handler.php

答案 4 :(得分:1)

最好的方法是使用此处列出的技术http://php.net/manual/en/class.errorexception.php将php“错误”转换为异常,然后像处理其他语言一样处理异常:

 function exception_error_handler($errno, $errstr, $errfile, $errline ) {
    throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
 }
 set_error_handler("exception_error_handler");


try {
   parse_url(...)
} catch(Exception $e) {

答案 5 :(得分:0)

使用@为您的函数调用添加前缀,因此使用@parse_url()应隐藏错误

答案 6 :(得分:0)

要为特定语句添加静默错误,只需添加@

实施例

$file = @file_get_contents($url);

当找不到$ url时,file_get_contents会抛出错误。

您可以在任何地方使用@符号来静音任何语句。像:

$i = @(5/0);