php - 合并try / catch异常

时间:2011-09-18 04:50:55

标签: php

我正在尝试将两个异常对象合并为一个。 知道它是如何工作的吗?

这里有一些伪代码:

$objects = array();

try {
  // do something
  throw new Exception('Error One');
} catch(Exception $e) {
  $objects[] = $e;
}


try {
  // do something
  throw new Exception('Error Two');
} catch(Exception $e) {
  $objects[] = $e;
}

if(!empty($Objetcs)) {
  // now merge objects
  $new = merge($objects);

  throw $new;
}

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

您正在使用相同的变量$objects,因此您无需合并。 如果要合并两个不同的数组变量,可以使用array_merge()函数。

答案 1 :(得分:0)

您可能想要使用array_push

$myErrors = array();
try { throw new Exception('Error Two'); } catch( Exception $e ) {
    array_push($stack, $e);
}

然后只需检查数组长度,如果它大于零 - 连接错误消息并将它们重新抛出为一个大块:

$l = count( $myErrors );
$long_txt = '';
if( $l > 0 ) { for( $i = 0; $i < $l; $i++) {
    if( $i > 0 ) { $long_txt .= ', '; } // add separators
    $long_txt .= $myErrors[$i]->getMessage();
}}
throw new Exception( $long_txt );