Si lo que buscabas era manejo de excepciones con try-catch, entonces no es este tu lugar. Aquí explicaré brevemente cómo manejar errores en PHP. ¿Cuál es la diferencia? Bueno, con excepciones lo que se quiere controlar es el comportamiento de nuestra aplicación validando que todo salga como se planeó por ejemplo: validar que una división nunca se haga por cero, hacer algo si falla una conexion a una base de datos entre otras. Mientras que los errores a los que nos enfocaremos aquí serán errores de parsing. Los errores de parsing pueden ser de léxico, sintácticos o semánticos.

Por ejemplo un error de léxico podría ser al escribir mal alguna sentencia de control:

$x = 1;
whle ( $x < 10 ) {
	echo $x;
	$x++;
}

El error en whle detendrá la ejecución.

Un ejemplo de error sintáctico sería cuando nos falta algo o le pusimos algo de más a nuestro código, algo de lo que el parser se quejaría.

while ( $x < 10 ) {
	echo $x
	$x++;
}

La falta del punto-y-coma provocará un error fatal.

Por último, un error de semántica se da cuando algo en el código no tiene lógica. Por ejemplo:

$x = 10;
while ( $x == 'hola' ) {
	echo $x;
	$x++;
}

No se puede comparar un entero con un string.

A veces movemos y movemos el código y sin querer dejamos «huecos» y «cosas repetidas» y al probar nuestra aplicación o simple página nos damos cuenta de que tenemos muchos errores. Si estamos en fase de desarrollo entonces esto nos va muy bien porque así podemos estar arreglando todo mientras vamos descubriendo los errores. Pero y ¿si el «trabajo» no era para nosotros sino para agluien mas?

La solución es usar la directiva de reporte de errores de PHP. Con ellas, y como desarrolladores de un sistema creado en PHP tenemos la habilidad de decidir si el usuario final puede o no ver los errores. Algunas configuraciones de los errores anteriormente mencionado se hacen en el archivo de configuración php.ini. Algunas de las funciones mas importantes son: error_reporting, display_errors y log_errors.

La función error_reporting() recibe un entero como parámetro y retorna otro entero. Los valores que recibe vienen dados en constantes predefinidas de PHP y el valor retornado es el antiguo nivel de reporte.

Por ejemplo, cuando estamos desarrollando es bueno conocer todos los errores. A veces usamos una variable sin definirla primero (PHP no se queja de ellos, pero aunque no lo creas eso produce un error de tipo E-NOTICE). Todos estos tipos de errores que por defecto no se muestran porque PHP4 y PHP5 vienen preconfigurados así:

	error_reporting( E_ALL & ~E_NOTICE );

Lo que significa que va a reportar todos menos noticias. Puedes configurarlo para que aparezcan las noticias simplemente llamando a error_repoting y mandandole como parámetro E-ALL.

	error_reporting( E_ALL );

En el registro de funciones y gestión de errores de php.net encontramos una explicación más amplia de todos los posibles valores. Ahora bien, ¿cómo ocultamos todos los errores? Simplemente poniendo un cero como parámetro:

	error_reporting( 0 );

En ambientes de producción, no es recomendable que el cliente pueda ver los errores o bugs que probablemente van a aparecer. Para ocultarlos y llevar un registro de ellos podemos establecer el reporte de errores a cero y además podemos configurar nuestro php.ini para que guarde un registro de errores al que podemos acceder más tarde y arreglarlos sin que el usuario final se dé cuenta. En el php.ini solo encenderiamos la directiva log_errors, para que qude así:

	log_errors = on;

En fín, son muchas las posibilidades, aquí solo muestro las más fáciles y comunes. Después haré un microtutorial para el manejo de excepciones en PHP, claro, orientado a objetos.