2010-01-07 8 views
5

estoy bastante familiarizado con el uso de objetos/clases en PHP y tengo curiosidad por EXCEPCIONES, TRY, y CAPTURA¿Qué es una excepción en PHP para y qué es try and catch?

En el siguiente ejemplo que he mostrado los 3 en uso. Obviamente, una excepción es algún tipo de forma de desencadenar un error, pero no entiendo por qué? En el código a continuación, podría mostrar fácilmente algún tipo de error o algo sin la excepción de parte allí?

Debajo de ese ejemplo hay un ejemplo que usa try and catch. Me parece que es lo mismo que usar if/else. Puedo estar equivocado, esta es la manera en que los veo sin saber nada, me doy cuenta de que puedes codificar cualquier cosa en PHP sin usarlos, ¿cuál es el motivo, hay algún beneficio sobre el uso de estas cosas frente a las formas tradicionales?

<?PHP 
// sample of using an exception 
if($something === $something_else){ 
    //do stuff 
}else if($something === $something_else_again){ 
    //do stuff 
}else{ 
    throw new Exception('Something went wrong!'); 
} 

try y catch

//and try and catch 
try{ 
    $thumb = PhpThumbFactory::create('/path/to/image.jpg'); 
} 
catch (Exception $e){ 
    // handle error here however you'd like 
} 
?> 

Respuesta

5

Para hacer las cosas a corto, una excepción es una "condición especial que cambia el flujo normal de la ejecución del programa" (citando a Wikipedia)


Quizás se encuentre interesado por (al menos) los pares de artículos:

Ellos deben darle algunos elementos interesantes - especialmente el segundo, para "lo que es una excepción en php"


Una de las ventajas (que forma parte de la idea básica) es:

  • tiene el código "normal" en el try bloquear
  • y la mayor parte del código "frente a los problemas" se encuentra en la catch bloque
  • lo que significa menos "frente a los problemas" código en el medio del código de "normal"
  • y también le permite reagrupe porciones de "tratar con problemas" del código
+0

gracias por los enlaces, después de leer el segundo me doy cuenta de que esto es algo que probablemente no aprenda de la noche a la mañana, parece algo complejo como cuándo y cómo usar exactamente, pero este es un buen comienzo y entiendo lo que están haciendo y por algo, gracias – JasonDavis

+0

Sí, no es algo que aprenderá (y usar "sabiamente") en solo un día ^^ Pero no necesita apresurarse tan rápido, de todos modos: irá paso a paso, cuando esté usando aquellos :-) –

2

Las excepciones son una manera de separar el código de control de errores de código "regular". Básicamente, esta estrategia le permite escribir un bloque de código y no preocuparse por lo que podría salir mal (el bloque try). Luego, más adelante, detecta excepciones que podrían haber sido lanzadas durante la ejecución del bloque y las maneja de manera apropiada. Es una manera más limpia de manejar errores.

+1

Solo recuerde. El primer error que arroja detiene la ejecución. Pero sí.... –

Cuestiones relacionadas