Raku kurss / Objekti, ievade/izvade un izņēmumi / Izņēmumi
Paša veidoti izņēmumi
Bez iebūvētajiem X:: izņēmumiem varat definēt savējos.
Paša definēts izņēmums ir klase, kas manto no iebūvētās klases
Exception un nodrošina metodi message:
class TooBig is Exception {
has $.value;
method message {
"Value $.value is too big";
}
}TooBig ir parasta klase — tai var būt atribūti,
piemēram, value —, taču, tā kā tā
is Exception, to var izmest. To izmetat, izveidojot objektu
un izsaucot uz tā .throw:
my $value = 20 * 30;
TooBig.new(value => $value).throw if $value > 50;
CATCH {
when TooBig {
say .message;
}
}Programma izdrukā:
Value 600 is too bigCATCH iekšienē when TooBig atbilst, jo
izmestais objekts ir šī tipa. Paša definēts izņēmums nes sev līdzi tos
datus, ko tam dodat (šeit value), tāpēc apstrādātājs var
uzbūvēt precīzu paziņojumu vai reaģēt konkrētā veidā — daudz noderīgāk
nekā vienkārša virkne, kas padota die.
Tas savij kopā visu šo daļu: paša definēts izņēmums ir klase (ar atribūtiem un metodi), kas piedalās izņēmumu mehānismā, gatava paziņot tieši to, kas noticis greizi.
Prakse
Jūs gaida 1 viktorīna par šī temata saturu.
Vingrinājumi
Šajā sadaļā ir 3 vingrinājumi. Pirms ķerieties pie vingrinājumiem, izlasiet visus šīs sadaļas tematus.
Kursa navigācija
← Viktorīna — fail
| Pārāk
liels →