Con capturar me refiero a que en el momento que ocurra el error yo realice una o varias acciones.
En efecto, explorer, eso es exactamente lo que yo quiero, que en el momento de producirse el error la subrutina &error() registre el error en una tabla de la base de datos y escriba también el error en un fichero
log, hacer un exit() y... lo que sea,
pero no hace eso, simplemente ocurre un error y el programa se para y no hace nada.
Sentencia que yo ejecuto:
Using perl Syntax Highlighting
$sth =$dbh_sre->prepare($sql) or &error("ERROR accesing r_cube_ctrl and temp_load_ctrl while collecting rows to process: couldn't prepare $DBI::errstr");Coloreado en 0.001 segundos, usando
GeSHi 1.0.8.4
al ejecutar obtengo en pantalla:
- Código: Seleccionar todo
thread failed to start: DBD::Oracle::db prepare failed: ORA-00904: "VAR1": invalid identifier (DBD ERROR: error possibly near <*> indicator at char 125 in 'select sum(cubetype) as cubetype, sum(dimensionflag) as dimensionflag,max(cdctime)as time from cube_ctrl where partitionid = <*>VAR1 and status = 'PENDING'') [for Statement "select sum(cubetype) as cubetype, sum(dimensionflag) as dimensionflag,max(cdctime)as time from cube_ctrl where partitionid = VAR1 and status = 'PENDING'"] at ccx_updateCube.pl line 460.
14/04/09 114537---TRACK: select to be run: select sum(cubetype) as cubetype, sum(dimensionflag) as dimensionflag,max(cdctime)as time from cube_ctrl where partitionid = VAR1 and status = 'PENDING'
En este punto está colgado el programa y además no ha hecho nada de lo que yo le he dicho que haga después del "or".
¿Me he explicado bien?