=begin pod :kind("Type") :subkind("class") :category("exception")

=TITLE class X::Phaser::PrePost

=SUBTITLE Error due to a false return value of a PRE/POST phaser

=for code
class X::Phaser::PrePost is Exception { }

Thrown when the condition inside a C<PRE> or C<POST> phaser evaluate to a
false value.

For example

    sub f($x) { PRE { $x ~~ Int } };
    f "foo";
    CATCH { default { put .^name, ': ', .Str } };
    # OUTPUT: X::Phaser::PrePost: Precondition '{ $x ~~ Int }' failed«␤»

=head1 Methods

=head2 method phaser

    method phaser(--> Str:D)

Returns the name of the failed phaser, C<"PRE"> or C<"POST">.

=head2 method condition

    method condition(--> Str:D)

Returns the part of the source code that describes the phaser condition.

=end pod
