osetreni chyboveho stavu
Honza Pazdziora
adelton na fi.muni.cz
Středa Leden 16 18:27:14 MET 2002
On Wed, 16 Jan 2002 17:11:40 GMT, Petr Bartos <xbartos5 na fi.muni.cz> wrote:
> Dobry den,
> vytvarim nejaky objekt, a pokud se jeho inicializace nepovede,
> potreboval bych, aby to nemelo vliv na probehnuti zbytku programu.
>
> O co konkretne jde:
> <CODE>
> $host = ""; #umyslne prazdne, aby byla chyba
> $socket = new IO::Socket::INET(PeerAddr => $host,
> PeerPort => 80,
> Proto => 'tcp',
> Type => SOCK_STREAM,
> Timeout => '2') or print "Nastala nejaka chyba!\n";
> </CODE>
>
> vytiskne se chybova hlaska za "or" a skript skonci.
> Vsechny moje napady jak to vyresit nejsou programatorsky pekne, prosim
> poradte.
$ perl
use IO::Socket::INET;
$host = ""; #umyslne prazdne, aby byla chyba
$socket = new IO::Socket::INET(PeerAddr => $host,
PeerPort => 80,
Proto => 'tcp',
Type => SOCK_STREAM,
Timeout => '2') or print "Nastala nejaka chyba!\n";
print "1\n";
__END__
Nastala nejaka chyba!
1
Myslim, ze skript skonci proto, ze dal v nem uz nic neni. Samozrejme
je mozne, ze to pokracuje nejakym textem, ktery jste nam zatajil,
a ze se treba ten nedefinovany objekt snazite pouzit pro volani metod
-- to samozrejme spadne, protoze kdyz neni objekt, neni zadna zabava
s objektem.
Mimochodem, pouzivate -w a use strict?
--
------------------------------------------------------------------------
Honza Pazdziora | adelton na fi.muni.cz | http://www.fi.muni.cz/~adelton/
.project: Perl, mod_perl, DBI, Oracle, auth. WWW servers, XML/XSL, ...
Petition for a Software Patent Free Europe http://petition.eurolinux.org
------------------------------------------------------------------------
Další informace o konferenci Perl