Cursus Raku / Obiecta, introitus et exitus, et exceptiones / Exceptiones

Exceptiones propriae

Praeter exceptiones inbuiltas X::, tuas ipsius definire potes. Exceptio propria est classis quae ab inbuilta classe Exception heredat et methodum message praebet:

class TooBig is Exception {
    has $.value;

    method message {
        "Value $.value is too big";
    }
}

TooBig classis ordinaria est — attributa qualia value habere potest — sed quia is Exception, iaci potest. Eam iacis obiectum creans et .throw in eo vocans:

my $value = 20 * 30;

TooBig.new(value => $value).throw if $value > 50;

CATCH {
    when TooBig {
        say .message;
    }
}

Programma imprimit:

Value 600 is too big

Intra CATCH, when TooBig convenit quia obiectum iactum illius generis est. Exceptio propria quaecumque data ei das secum fert (hic value), itaque tractator nuntium accuratum aedificare vel certo modo reagere potest — multo utilius quam mera chorda ad die tradita.

Hoc omnia huius partis coniungit: exceptio propria est classis (cum attributis et methodo) quae machinamento exceptionum interest, parata significare quid exacte male ceciderit.

Exercitatio

Sequuntur 1 quiz de contentis huius argumenti.

Exercitationes

In hac sectione sunt 3 exercitationes. Omnia huius sectionis argumenta inspice antequam exercitationes incipias.

  1. Nimis magnum
  2. Error numeri negativi
  3. Duo genera exceptionum

Quiz — fail   |   Nimis magnum