[Pgsql-ayuda] Manejo de excepciones

Gunnar Wolf gwolf@gwolf.cx
Tue, 03 Feb 2004 16:07:43 -0600


nahum castro dijo [Thu, Jan 29, 2004 at 12:50:33AM -0600]:
> > > > No será mejor que uses java/jsp en tomcat con el
> > > > driver JDBC, este sistema tiene un muy buen
> > manejo
> > > de
> > > > excepciones. Funciona en windows y linux.
> > > 
> > > Disculpen la crudeza, pero que clase de respuesta
> > es
> > > esa? Digo, si no sabes que
> > > contestar para resolverle el problema, no le
> > cambies
> > > la bocha por completo.
> > 
> Esta es una discusión esteril sobre mi opinion, si
> conoces la respuesta por favor respondele tu, le
> recomiendo usar java por que tiene el manejo de
> excepciones y PHP todavia no en versiones de
> producción.

Bueno... La cosa es que hay más de una manera de lograr lo mismo. No
manejo PHP, pero hablo Perl bastante fluído. Y no hay un mecanismo de
excepciones como tal, pero en realidad no hace falta. Las funciones de
acceso a la BD siempre regresan un objeto o un código de estado, y con
eso puedes trabajar perfectamente. Por ejemplo, en el caso específico
de Perl, puedes hacer (en el más simplista de los casos, y con un
estilo que no se me hace recomendable más que para un ejemplo
cortito): 

$dbh->do('UPDATE tabla SET numero=5 WHERE condición>0');
if (my $error = $dbh->errstr) {
    warn $error;
}

Dime si no es un tipo de manejo de excepciones... Claro, puedo hacerlo
de otro modo, activando RaiseError y ejecutando:

eval { $dbh->do('UPDATE tabla SET numero=5 WHERE condicion>0'); }
if ($@) {
    warn $dbh->errstr;
}

que es formalmente manejo de excepciones, le veas por donde le
veas... Pero es menos claro que el ejemplo anterior. Claro, en mi muy
humilde opinión ;-)

Saludos,

-- 
Gunnar Wolf - gwolf@gwolf.cx - (+52-55)5630-9700 ext. 1366
PGP key 1024D/8BB527AF 2001-10-23
Fingerprint: 0C79 D2D1 2C4E 9CE4 5973  F800 D80E F35A 8BB5 27AF