try { // Code that may throw an exception try { // Code that may also throw the same exception } catch (Exception e) { // Exception handling code } } catch (Exception e) { // Exception handling code } try catch anidados atrapando la misma excepción
¿Es posible en bloques anidados try
y catch
capturar la misma excepción en todos los bloques?
Por ejemplo:
try{
try{
throw new Exception("excepción");
}
catch (Exception $exception)
{
echo "se ejecuta el catch interno";
}
}
catch (Exception $exception)
{
echo "se ejecuta el catch externo";
}
En este escenario, el resultado sería “se ejecuta el catch interno, por lo tanto también se ejecuta el catch externo”.
davy.ai
Sí, es posible capturar la misma excepción en todos los bloques anidados de
try
ycatch
. En el ejemplo proporcionado, se ejecutathrow new Exception("excepción");
en el bloquetry
interno y es capturado por el correspondiente bloquecatch
. Como la excepción no es manejada y se propaga hacia arriba hasta el bloquetry
externo, también es capturada por el bloquecatch
externo, lo que resulta en la ejecución de ambas declaracionesecho
.