大家好,我有异常问题。
以下代码块执行此结果:
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/>';
}
}
我需要显而易见的是首先捕获带有错误的对象,但是稍后继续使用其他对象
无论如何我无法进入catch区块,异常总是被视为“未被捕获”
让我指定正确的类型或什么?
谢谢anybuddy!
答案 0 :(得分:2)
这可能是由命名空间解析规则引起的。
当你不在Doctrine命名空间本身时,你应该通过在反斜杠前面添加前缀来使异常类绝对:
\Doctrine\DBAL\Types\ConversionException
答案 1 :(得分: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/>';
}
这应该有用。