gpt4 book ai didi

php - 如何在 symfony 中尝试 Catch

转载 作者:可可西里 更新时间:2023-11-01 12:25:24 26 4
gpt4 key购买 nike

情况:

//trollCommand.php
[...]
foreach ($trolltypes as $type) { //$type=={"Frost","RandomBroken","Forest"}
try {
$output->writeln($type);
$troll={"get".$type."TrollType"}();
$output->writeln("TEST 1");
$troll->__load();
$output->writeln("TEST 2");
} catch (EntityNotFoundException $e) {
$output->writeln("WARNING: TROLL ENTITY DOES NOT EXIST.");
continue;
}
$output->writeln("TROLLING");
do_something_with_troll($troll);
}

getFrostTrollType 加载正常,getForestTrollType 也应该加载正常,但在此之前,这是一个问题,getRandomBrokenTrollType() 故意不存在,然后我在控制台中看到消息:

 Frost
Test 1
Test 2
TROLLING
RandomBroken
Test 1
[Doctrine\ORM\EntityNotFoundException]
Entity was not found.
//[EXIT FROM SCRIPT]
troll@troll-machine ~/trollSandbox/ $ _

它应该是:警告:巨魔实体不存在。然后继续;但它并没有发生

如何检查一个对象的方法是否存在?

最佳答案

如果您试图捕获任何异常,您应该在“Exception”之前使用反斜杠。

例如:

try{
//do stuff here
}
catch(\Exception $e){
error_log($e->getMessage());
}

如果不使用反斜杠,则不会捕获异常。这是由于命名空间在 PHP/Symfony 中的使用方式。

关于php - 如何在 symfony 中尝试 Catch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23731604/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com