PHP 怎么跳过错误继续执行

PHP 怎么跳过错误继续执行
2024-12-23 02:52:15
推荐回答(5个)
回答1:

@错误控制操作符可以实现这样的功能。
@符号可以忽略错误,有抑制错误的功能。

例如:

function db_connect()//连接数据库
{
@$db =mysql_connect('localhost','root','test');
if(!$db) {
throw new Exception('连接数据库失败!请重试!');
}
mysql_select_db('book');
return $db;
}

如果连接数据库不成功的,前面的“@”就能把错误显示给抑制住,也就是不会显示错误,然后再抛出异常,显示自己定义的异常处理,建议最好少用,这样会增加一定的系统开销。

回答2:

error_reporting(-9);
在开头加入这条语句即可。
PHP的主要就3个报错级别,Notice,warning,parse error.

顺便帮你列举一下报错模式设置数值,-1是全报错模式,希望抑制哪个报错级别就用-1减去对应级别数值即可,如果希望同时抑制多个报错级别,就用-1连续减去对应级别数值即可。
E_ALL:-1
E_ERROR:1。
E_WARNING:2。
E_PARSE:4。
E_NOTICE:8。
E_CORE_ERROR:16。
E_CORE_WARNING:32。

回答3:

PHP遇到错误能继续执行的,除非是严重的语法错误。

防止错误信息出现在浏览器上,可以在相应的语句前面加上@符号,比如下面的连接数据库的语句,在数据库连接失败时不在浏览器上显示错误信息:

$db=@mysql_connect(...);
如果还没解决你的问题,可以加我百度HI账号。

回答4:

php是错误控制,而不是异常控制,参考手册错误处理一节
想使用 try 要 throw new Exception($error)
例如:
try
{
$a='';
if ($a=='')
{
throw new Exception('$a bu neng wei kong');
}
}
catch(Exception $e) {
echo $e->getMessage();
}

使用set_error_handler®ister_shutdown_function自行处理错误

回答5:

执行代码前加@符号