1

こんにちは、私は例外に問題があります。

次のコード ブロックは、この結果を行います。

Fatal error: Uncaught exception 'Doctrine\DBAL\Types\ConversionException' with message 'Could not convert database value .....

コード:

foreach ($result as $indexArray => $objectID) {
  try {
    $tempObject = new OggettoEbayDB();
    $tempObject = $entityManager->find('OggettoEbayDB',$objectID);
    if($tempObject->checkValid()){
    //.... do something else      
    }    
  } catch(Doctrine\DBAL\Types\ConversionException $e){
    $arrayOggettoEbayDBDeleted [] = '<b>Oggetto con id -> '.$tempObject->getId().' ha dato problemi con il seguente messaggio '.$e->getMessage().'<br/><br/>';
  }
}

明らかなように、最初にエラーのあるオブジェクトをキャッチする必要がありますが、後で他のオブジェクトで foreach を続行します

とにかくキャッチブロックに入ることができません。例外は常に「キャッチされていない」としてキャッチされます

正しいタイプを指定する必要がありますか?

ありがとう!

4

2 に答える 2

2

これは、名前空間の解決規則が原因である可能性があります。

Doctrine 名前空間自体にいない場合は、バックスラッシュを前に付けて、例外クラスを絶対クラスにする必要があります。

\Doctrine\DBAL\Types\ConversionException
于 2012-05-21T08:25:10.700 に答える
1

あなたが提供したコード ブロックは、あなたがキャッチしている他のタイプの例外をスローしています。次に、この例外をDoctrine\DBAL\Types\ConversionException、もうキャッチされない新しい例外をスローするものに変換しようとしています。

最初にこれを試してください:

...
try { ... }
catch(\Exception $e) {
    $arrayOggettoEbayDBDeleted [] = '<b>Oggetto con id -> '.$tempObject->getId().' ha dato problemi con il seguente messaggio '.$e->getMessage().'<br/><br/>';
}

これはうまくいくはずです。

于 2012-05-21T08:29:20.727 に答える