【发布时间】:2013-08-06 13:30:26
【问题描述】:
这是我在 PHP 中的 try/catch 块:
try
{
$api = new api($_GET["id"]);
echo $api -> processRequest();
} catch (Exception $e) {
$error = array("error" => $e->getMessage());
echo json_encode($error);
}
当$_GET["id"] 中没有任何内容时,我仍然收到通知错误。
如何避免出现此错误?
【问题讨论】:
-
使用
isset($_GET['id'])或array_key_exists('id', $_GET);.. 一百万个重复来计算这个问题.. -
if (isset($_GET['id'])){ $api = new api($_GET['id']); }
-
PHP 通知不是例外。
-
@dbf 也许可以。但是访问未定义的数组索引仍然会引发 NOTICE。如果 OP 想要避免它,他应该设置一个适当的错误处理程序,将通知“转换”为异常,或者他可以在
!isset($_GET['id'])时手动抛出异常 -
$api->processRequest();确实会引发异常