Ver Mensaje Individual
  #6 (permalink)  
Antiguo 13/05/2011, 15:01
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Duda con try catch

Claro, todo lo que esta dentro del try {} va a ser cachado en caso de ser un tipo de excepcion declarada, ve el siguiente ejemplo:
Código PHP:
Ver original
  1. // Excepciones de ejemplo
  2. class MyException1 extends Exception{}
  3. class MyException2 extends Exception{}
  4. class MyException1_2 extends MyException1{}
  5.  
  6. // Funciones de ejemplo
  7. function foo1() {
  8.     throw new MyException1("foo1");
  9. }
  10.  
  11. function foo2() {
  12.     throw new MyException2("foo2");
  13. }
  14.  
  15. function foo1_2() {
  16.     throw new MyException1_2("foo2");
  17. }
  18.  
  19. function foo3() {
  20.     foo1_2();
  21. }
  22.  
  23. // Captura todo (porque captura Exception)
  24. try {
  25.     foo1();
  26. } catch (Exception $e) {
  27.     echo $e->getMessage();
  28. }
  29.  
  30. // Captura solo MyException1
  31. try {
  32.     foo1();
  33. } catch (MyException1 $e) {
  34.     echo $e->getMessage();
  35. }
  36.  
  37. // Captura tambien porque MyException1_2 hereda a MyException1
  38. try {
  39.     foo3();
  40. } catch (MyException1 $e) {
  41.     echo $e->getMessage();
  42. }
  43.  
  44. // No captura (Error fatal) porque MyException2 hereda directo a Exception
  45. try {
  46.     foo2();
  47. } catch (MyException1 $e) {
  48.     echo $e->getMessage();
  49. }

Para que entiendas de una mejor forma como se capturan las excepciones.