Jak se hlasi chybove stavy?

Honza Pazdziora adelton na informatics.muni.cz
Pátek Červen 6 19:32:13 MEST 2003


On Fri, Jun 06, 2003 at 07:25:25PM +0200, Jan Kasprzak wrote:
> 	Mam takovy problem - pisu nejaky perlovy modul a potrebuju
> mit funkce, ktere budou vracet undef v pripade neuspechu. Ale zaroven
> bych rad nejak vracel i duvod chyby. Jak se tohle obvykle resi? V globalni
> promenne? Pomoci dalsi metody objektu? Neco jineho?

DBI vraci chybu konstruktoru (tedy pokud selhal connect a uzivatel tak
nema zadny objekt, ktereho by se zeptal) v $DBI::err a $DBH::errstr,
tedy globalnich promennych.

Pokud jde o chybu metody objektu, ktery uz uzivatel ma, tak se pak
pouziji na zjisteni povahy chyby metody err ci errstr na tom samem
objektu, na kterem ta puvodni metoda selhala:

	my $sth = $dbh->prepare($SQL) or die $dbh->errstr;

Dalsi moznosti je byt javovsky a moderni :-) a nevracet undef, anybrz
vyjimku. Pri volani se to obali evalem a najde v $@.

Tohle jsou tak v kostce dva zakladni pristupy.

-- 
------------------------------------------------------------------------
 Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
 .project: Perl, mod_perl, DBI, Oracle, auth. WWW servers, XML/XSL, ...
		Only self-confident people can be simple.


Další informace o konferenci Perl