我有一个 try block ,其中肯定会抛出一些异常,但如果发生这种情况,我不想停止 try block 的执行。
这是代码:
try {
$queryStr = "SELECT * FROM `$current_table` WHERE ...";
$query = $db->prepare($queryStr);
$query->execute();
while($row = $query->fetch()) {
}
} catch(PDOException $e) {
//echo $e->getMessage();
}
这个 try/catch block 位于 for 循环内,因此 $current_table
将不断变化。现在,当前表可以采用 4 个值 april-june-2014
、july-september-2014
、october-december-2014
和 2015 年 1 月至 3 月
。这些表名存储在一个数组中。
现在,当它将查询第一个表并且如果找到它时,那么它很好,但如果没有找到,那么我想检查其他表并看看它们是否存在。如果没有找到任何表,则会抛出异常,然后不会检查其他表。
有办法做到这一点吗?
最佳答案
使用 continue 语句:
for (/* condition */) {
try {
// things
} catch (Exception $e) {
continue;
}
// won't reach here if exception was caught
}
示例(在 WriteCodeOnline 上尝试一下):
$counter = 0;
for ($i = 0; $i < 5; $i++) {
try {
$counter++;
if ($counter != 3) {
throw new Exception("Test");
}
} catch (Exception $e) {
continue;
}
echo "This only prints when an exception is not thrown (when \$counter is 3). See: \$counter = " . $counter;
}
echo "\n";
var_dump($counter);
关于PHP:即使发现异常如何执行try block ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27499604/