foreach循环中的PHP异常

标签 php exception try-catch

在如下所示的 foreach 循环中实现 php 异常 (try{}catch(){}) 的正确方法是:

foreach ($apis as $api)
{                 
     $api = '_'.$api;
     $searchResults[$api] = $this->$api($parameters);
}

如果 $this->api(); 之一返回错误消息,我想实现 php 异常,然后捕获它并在捕获中执行 if 以显示正确的消息对于返回的错误信息。

编辑: 此外,在捕获错误时,如果错误消息为 1(例如),这是一个好方法吗:

$searchResults['api'] = $this->_api($parameters);

所以它尝试再次执行该功能,看看这次它是否带来了有效数据?

最佳答案

foreach ($apis as $api)
{                 
     $api = '_'.$api;
     try {
         $searchResults[$api] = $this->$api($parameters);
     }
     catch(ParameterException $e) {
         // parameterexception handling here
         echo "A ParameterException was thrown";
     }
     catch(Exception $e) {
         // All other exceptions
         echo "Some other Exception was thrown";
     }
}

您还可以区分更多异常类型。

关于foreach循环中的PHP异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8869876/

相关文章:

java - HTTP 状态 500 - Struts2 应用程序中处理 JSP 页面时发生异常

c++ - 当没有抛出任何东西时,带有 try-catch 的代码是否仍然很慢

java - 是否每个异常都有一个必需的 try-catch?

php - 如何在使用PHP跟踪错误$ e-> getTraceAsString()时隐藏密码

php - 如何将一个或多个字段忽略空字段更新到mysql数据库中?

java - Apache Nutch 2.3.1 Fetcher 给出无效 uri 异常

oracle - "Cursor is closed"错误 - 尝试使用 JDBC 执行 Oracle SP 时

sql-server - 如何处理SQL Server T-SQL try-catch block 中丢失的客户端连接?

PHP 停止输出撇号上的数据

php - 未从子类处理的查询字符串