Kurso de Raku / Objektoj, en- kaj eligo kaj escepto / Esceptoj
Kapti esceptojn per
try
Kiam io misiras en Raku-programo — mankanta dosiero, eksplicita
die — escepto estas ĵetata. Defaŭlte, netraktita
escepto haltigas la programon. La bloko try permesas al vi
ruli kodon, kiu povus malsukcesi, sen kolapsi.
Vi envolvas la riskan kodon en blokon try. Se escepto
estas ĵetata ene de ĝi, la bloko haltas tie, sed la programo daŭras:
my $result = try {
die 'Boom!';
};
say "Still works";La die estas kaptita de la try, do la
programo ne kolapsas — ĝi pluiras rekte al la sekva instrukcio kaj
presas:
Still worksKiam la bloko malsukcesas tiel, ĝi taksiĝas al nedifinita valoro, do
$result estas nedifinita:
say $result.defined; # FalseLa escepto, kiu estis kaptita, estas konservita en la speciala
variablo $!. Vi povas legi ĝian mesaĝon el tie:
say $!.message; # Boom!Do try transformas fatalan eraron en ion, kion via
programo povas inspekti kaj al kio ĝi povas reagi. Se la bloko ruliĝas
sen ia ajn escepto, $result tenas ĝian valoron, kaj
$! estas nedifinita.
Ankaŭ en ĉi tiu sekcio
Praktiko
Vin atendas 1 kvizo pri la enhavo de ĉi tiu sekcio.
Ekzercoj
En ĉi tiu sekcio estas 3 ekzercoj. Trarigardu ĉiujn temojn de ĉi tiu sekcio antaŭ ol komenci la ekzercojn.