我有一种情况,能够拥有一个在运行时确定Exception类型的catch块会很好。它可以这样工作:
$someClassName = determineExceptionClass();
try {
$attempt->something();
} catch ($someClassName $e) {
echo 'Dynamic Exception';
} catch (Exception $e) {
echo 'Default Exception';
}
这一切都可能吗?
答案 0 :(得分:6)
据我所知,这并不起作用。您可以使用如下控制语句来模仿该功能:
$someClass = 'SomeException';
try
{
$some->thing();
}
catch (Exception $e)
{
switch (get_class($e))
{
case $someClass:
echo 'Dynamic exception.';
break;
default:
echo 'Normal exception.';
}
}