gpt4 book ai didi

php - 嵌套的 try catch 在 PHP 中

转载 作者:可可西里 更新时间:2023-11-01 13:35:18 26 4
gpt4 key购买 nike

考虑:

try{
class MyException extends Exception{}
try{
throw new MyException;
}
catch(Exception $e){
echo "1:";
throw $e;
}
catch(MyException $e){
echo "2:";
throw $e;
}
}
catch(Exception $e){
echo get_class($e);
}

我对这个 try and catch 很困惑。由于第二个 try throw MyException,我期待 2:MyException 结果。但实际结果是1:MyException。什么解释?

最佳答案

MyException extends Exception,所以ExceptionMyException更通用,第一个catch block 将捕获它。如果你想捕获 MyException,你需要颠倒 catch block 的顺序:

class MyException extends Exception{}

try {
try {
throw new MyException;
} catch(MyException $e){
echo "2:";
throw $e;
} catch(Exception $e){
echo "1:";
throw $e;
}
}catch(Exception $e){
echo get_class($e);
}

关于php - 嵌套的 try catch 在 PHP 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19203928/

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