Raku kurss / Objekti,
ievade/izvade un izņēmumi / Izņēmumi / Izņēmumu
pārtveršana ar try
Ne katra kļūda parādās uzreiz
Pēc noklusējuma izmests izņēmums aptur programmu uzreiz, un
try ir veids, kā to noķert. Taču ne viss, kas izskatās pēc
liktenīgas kļūdas, patiešām aptur programmu tajā brīdī, kad tas notiek.
Raku ir neveiksmes, kas paliek klusas, atliekot savu reakciju līdz
brīdim, kad rezultātu izmantojat, vai ļaujot to izpētīt un turpināt.
Pāris no tām šajā daļā jau ir parādījušās, un ir vērts tās savākt
vienuviet.
Dalīšana ar nulli. Dalīšana ar nulli neuzsprāgst tur, kur uzrakstīta. Sliktā vērtība tiek radīta un klusi paturēta; tā izmet izņēmumu tikai tad, kad to izmantojat — piemēram, izdrukājot vai pārveidojot:
my $x = 1 / 0; # no error here
say 'still running';
say $x; # only now does it throwŠī atliktā uzvedība un Failure objekti aiz tās ir temata
Mīkstās neveiksmes priekšmets.
Neveiksmīga ārēja programma. Proc, ko
atgriež run vai shell un kas beidzies
nesekmīgi, neizmet izņēmumu, kad tiek radīts. Tas izmet tikai tad, ja to
izmetat neapstrādātu; saglabājiet to un nolasiet
.exitcode (vai pārbaudiet kā Būla vērtību), un neveiksme
paliek parasta vērtība, uz ko var reaģēt. To redzējāt sadaļā Proc objekts.
Kopīgais pavediens: neveiksmi var atlikt — pārvērst par
vērtību, ko izpētāt, kad esat gatavi, nevis par tūlītēju avāriju.
try un fāzeris CATCH tiek galā ar kļūdām, kas
tiek izmestas uzreiz; šie mehānismi tiek galā ar tām, kas netiek.
Kursa navigācija
← Izņēmumu pārtveršana ar try
| Pārtveriet
kļūdu →
💪 Vai arī dodieties tieši uz
šīs sadaļas vingrinājumiem.