[英]php - merge try/catch exceptions
我正在嘗試將兩個異常對象合並為一個。 任何想法如何工作?
這里我想到了一些偽代碼:
$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;
}
在此先感謝您的幫助!
您正在使用相同的變量$objects
,因此不需要合並。 如果要合並兩個不同的數組變量,可以使用array_merge()
函數。
您可能要使用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 );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.