2011-06-01 11 views
8

Tengo una función de PHP que llama a un paquete PL/SQL que puede arrojar una serie de excepciones conocidas (es decir, excepciones de usuario) que puedo detectar en PHP y actuar. El problema es que, a pesar de la captura de excepción en PHP recibo una advertencia en el archivo de registro de PHP con un seguimiento de pila de la excepción PL/SQL:Suprimir advertencias de PHP para excepciones de Oracle esperadas

PHP Warning: oci_execute(): ORA-20001: Something isn't valid 
ORA-234565: at "MY.PACKAGE", line 234 
ORA-923485: at "MY.PACKAGE", line 123 

¿Cómo puedo suprimir estas advertencias OCI? No quiero suprimir todas las advertencias, ya que pueden ser útiles para otros problemas, pero cuando se trata de un error esperado de mi PL/SQL, no quiero que llene mi archivo de registro.

Respuesta

6

Si sólo necesita suprimir la advertencia sobre oci_execute(), anteponga @

@oci_execute() 

El uso de ese tipo de supresión de errores de tiempo de ejecución a menudo no se recomienda ya que cubre hasta problemas en la aplicación, pero usted ha manejó el problema en el código al detectar la excepción y comprender la consecuencia de suprimir las advertencias.

PHP docs on the @ operator ...

+0

¡Guau! Gracias. Se usó @ para suprimir la advertencia sobre XML cuando se usa XMLDocument; no se pensó en usarlo para esto. – Stephen

Cuestiones relacionadas