2011-09-18 9 views
0

私は2つの例外オブジェクトを1つにマージしようとしています。 これはどのような考えですか?php - try/catch例外をマージする

ここで私が考えているいくつかの擬似コード:あなたの助けを事前に

$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

同じ変数$objectsを使用しているため、マージする必要はありません。 2つの異なる配列変数をマージする場合は、array_merge()関数を使用できます。

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);