Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Esceptoj
Esceptobjektoj
Escepto estas objekto, kiel ĉiu alia en Raku. Kiam vi skribas
die 'something failed', Raku envolvas vian mesaĝon en
esceptobjekton de la tipo X::AdHoc.
Ene de CATCH, vi povas inspekti tiun objekton. Ĝia tipo
venas de .^name, kaj ĝia teksto de
.message:
{
die 'something failed';
CATCH {
default {
say .^name; # X::AdHoc
say .message; # something failed
}
}
}Koni la tipon permesas al vi trakti malsamajn erarojn malsame. La
enkonstruitaj esceptoj de Raku havas specifajn tipojn, kies nomoj
komenciĝas per X::, kaj vi povas kongrui kun ili per
when, ĝuste kiel vi kongruis valorojn en bloko
given/when:
{
die 'something failed';
CATCH {
when X::AdHoc {
say 'an ad-hoc error: ' ~ .message;
}
default {
say 'some other error';
}
}
}Ĉi tio presas an ad-hoc error: something failed, ĉar la
escepto kongruis kun la tipo X::AdHoc. Kongrui laŭ la tipo
estas la bazo de trakti specifajn erarojn — la ideo, sur kiu la sekcio
pri propraj esceptoj
konstruas.
Praktiko
Vin atendas 1 kvizo pri la enhavo de ĉi tiu temo.
Ekzercoj
En ĉi tiu sekcio estas 3 ekzercoj. Trarigardu ĉiujn temojn de ĉi tiu sekcio antaŭ ol komenci la ekzercojn.
Kursa navigado
← Kvizo — CATCH |
Nomu la
eraron →