Documentos oficiales es un buen lugar para comenzar - http://php.net/manual/en/language.exceptions.php.
Si solo se trata de un mensaje que desea capturar, lo haría de la siguiente manera;
try{
throw new Exception("This is your error message");
}catch(Exception $e){
print $e->getMessage();
}
Si desea capturar errores específicos que usaría:
try{
throw new SQLException("SQL error message");
}catch(SQLException $e){
print "SQL Error: ".$e->getMessage();
}catch(Exception $e){
print "Error: ".$e->getMessage();
}
Para el registro - que había necesidad de definir SQLException
. Esto puede hacerse tan simple como:
class SQLException extends Exception{
}
por un título y el mensaje que se extendería la clase Exception
:
class CustomException extends Exception{
protected $title;
public function __construct($title, $message, $code = 0, Exception $previous = null) {
$this->title = $title;
parent::__construct($message, $code, $previous);
}
public function getTitle(){
return $this->title;
}
}
Se podría invocar este usando:
try{
throw new CustomException("My Title", "My error message");
}catch(CustomException $e){
print $e->getTitle()."<br />".$e->getMessage();
}
Gracias, Esta respuesta es impresionante. Con este ejemplo en mente, si quisiera pasar un título y solo el mensaje con la excepción ¿cómo lo haría? – Hailwood
W3Schools no es propiedad de W3C, y en realidad es un recurso deficiente, ver http://w3fools.com para obtener información – BoltClock
Lo siento, me perdí la parte de 'escuelas'. Sin embargo, creo que su guía sobre el manejo de excepciones fue una introducción lo suficientemente decente, pero voy a editar y cambiar a los documentos oficiales, por coherencia. –