致命错误:未捕获没有这样的id-API响应(PHP)
我试图从一个API中获取所有信息,但我不知道API可以获取的每个ID。因此,基本上我在增加ID的同时,一个接一个地呼叫1个信息:致命错误:未捕获没有这样的id-API响应(PHP),php,api,Php,Api,我试图从一个API中获取所有信息,但我不知道API可以获取的每个ID。因此,基本上我在增加ID的同时,一个接一个地呼叫1个信息: <?php $i = 0; while ($i < 1000) { if ($api->traits()->get($i) == "Uncaught no such id") { echo "do something"; $i++; } else { ec
<?php
$i = 0;
while ($i < 1000)
{
if ($api->traits()->get($i) == "Uncaught no such id")
{
echo "do something";
$i++;
}
else
{
echo "do something else";
$i++;
}
}
我相信你看到的是一个未破坏的。请参见catch
块?这就是“未破坏”的意思
试试这个:
<?php
$i = 0;
while ($i < 1000)
{
try
{
$trait = $api->traits()->get($i);
}
catch (Exception $ex)
{
echo "Error: " . $ex->getMessage();
echo "(do something else)";
$i++;
continue;
}
echo "found trait " . $trait;
$i++;
}
我还应该补充一点,Exception
是异常的基本类型或类,API和库通常会抛出更具体的异常类型
catch (Exception $ex) { ... }
将捕获任何类型的异常,但
catch (HttpConnectionException $ex) { ... }
将仅捕获类型为HttpConnectionException
的异常。这允许您以不同的方式处理特定类型的错误。如果您愿意,您可以使用get\u class($ex)
查看API抛出的异常的确切类型。哇,谢谢您,先生。我现在正在微笑。我不认为这是可能的,我想“我该不该发布这个愚蠢的问题”没问题,很高兴我能帮助你!我还在底部添加了一个注释,关于捕获特定类型的异常,而不是捕获“所有异常”;但是,我的原始帖子中的PHP文档链接也解释了这一点。
catch (HttpConnectionException $ex) { ... }