我正在尝试将两个异常对象合并为一个。 知道它是如何工作的吗?
这里有一些伪代码:
$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;
}
提前感谢您的帮助!
答案 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 );