我有这个功能:
public static function get($action, $param = null) {
$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r\n",
'method' => "GET"
)
);
$context = stream_context_create($options);
$params = '';
foreach($param as $key => $value)
$params .= $key . '=' . $value . '&';
trim($params, '&');
$result = file_get_contents(self::$url . $action . '?' . $params, false, $context);
return json_decode($result, true);
}
问题是:当我向file_get_contents
提供错误的网址时,它会抛出错误(异常)。
但是,我希望返回false而不会抛出错误。
我怎么能这样做?
答案 0 :(得分:1)
您应该使用try {} catch {}
来捕获异常,并在这种情况下执行某些操作。
try {
$result = file_get_contents(self::$url . $action . '?' . $params, false, $context);
} catch (\Exception $e) {
return false;
}
答案 1 :(得分:0)
您可以使用try-catch
块围绕它:
public static function get($action, $param = null) { $options = array( 'http' => array( 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => "GET" ) ); $context = stream_context_create($options); $params = ''; foreach($param as $key => $value) $params .= $key . '=' . $value . '&'; trim($params, '&'); try { $result = file_get_contents(self::$url . $action . '?' . $params, false, $context); return json_decode($result, true); } catch(Exception $exc) { return false; } }
try
使PHP异常感知可以说:如果try
块中的抛出异常,PHP将执行catch
块并在这里$exc
将包含有关抛出异常的详细信息。