puedo manejar excepciones en un manera similar a eventHandling en Javascript. Un evento sube de escala de específico a genérico. Cuando llega al programa de inicio, una excepción pierde todo el significado del código y simplemente debe atraparse para iniciar sesión y finalizar una aplicación.
Mientras tanto, un montón de cosas puede suceder
CallStack:
- Inicio almuerzo
- Coma Apple (Antes de este código, una manzana fue comprado como el almuerzo)
- dientes se hunden en manzana
Durante mi consumo de la manzana, un gusano apareció:
throw NausiaException('I found a bleeding worm...');
Coma alcance de Apple atrapa
catch(Exception $e)
la excepción ya que en ese ámbito se puede devolver a la niña a la tienda y gritar a la gerente. Como no se puede decir nada más útil sobre la incidencia, se llama a
throw $e
porque se produjo un error al comer la manzana.
Algo podría haber ido diferente Sin embargo, si el gerente de la tienda se negó a la devolución, se puede envolver la excepción
throw new RefundFailedException('The manager is a cheap skate', RefundFailedException::REFUSED, $e)
almuerzo de inicio Alcance inicio alcance el almuerzo quiere tirar mal el almuerzo
try {
//Start lunch
} catch (Exception $e) {
switch (true) {
case $e instanceof NausiaException:
case $e instanceof RefundFailedException:
//Throw lunch away
break;
}
}
el punto es para transferir el control a la 'catch' exterior después de ejecutar la interior. Un 'return' se saltaría por completo. – cHao