class Exception {}

放入 $! 变量(或 CATCH 块中的 $_)的所有异常都继承自 Exception。当您使用非异常参数调用 diefail 时,它会被包装到 X::AdHoc 对象中,该对象也继承自 Exception

用户定义的异常类也应该继承自 Exception,并至少定义一个 message 方法。

class X::YourApp::SomeError is Exception {
    method message() {
        "A YourApp-Specific error occurred: out of coffee!";
    }
}

方法§

方法 message§

method message(Exception:D: --> Str:D)

这是一个存根,必须由子类覆盖,并且应该返回异常消息。

应特别注意,此方法本身不会产生异常。

try die "Something bad happened";
if ($!{
    say $!.message# OUTPUT: «Something bad happened.␤» 
}

方法 backtrace§

method backtrace(Exception:D:)

Backtrace 对象中返回与异常关联的回溯,如果没有回溯,则返回空字符串。仅对已抛出至少一次的异常有意义。

try die "Something bad happened";
with $! { .backtrace.print ; }

方法 throw§

method throw(Exception:D:)

抛出异常。

my $exception = X::AdHoc.new;    # Totally fine 
try $exception.throw;            # Throws 
if ($!{ #`( some handling ) }# Suppress the exception

方法 resume§

method resume(Exception:D:)

CATCH 块中处理时,从 .throw 离开的位置恢复控制流。

# For example, resume control flow for any exception 
CATCH { default { .resume } }

方法 rethrow§

method rethrow(Exception:D:)

重新抛出已抛出至少一次的异常。这与 throw 不同,因为它保留了原始回溯。

sub f() { die 'Bad' };
sub g() { fCATCH { default { .rethrow } } };
g;
CATCH { default { say .backtrace.full } };

例程 fail§

multi  fail(Exception $e)
method fail(Exception:D:)

退出调用 Routine 并返回一个 Failure 对象,该对象包装异常。

# A custom exception defined 
class ForbiddenWord is Exception {
    has Str $.word;
    method message { "This word is forbidden: «$!word»" }
}
 
sub say-word ( $word ) {
    ForbiddenWord.new(:word($word)).fail if $word eq 'foo';
    $word.say;
}
 
my $result = say-word("foo");
say $result.exception;

例程形式以相同的方式工作,采用替代语法:fail ForbiddenWord.new(:word($word))

方法 gist§

multi method gist(Exception:D:)

返回异常打印机应为此异常生成的内容。默认实现返回消息和回溯,以换行符分隔。

my $e = X::AdHoc.new(payload => "This exception is pretty bad");
try $e.throw;
if ($!{ say $!.gist};
# OUTPUT: «This exception is pretty bad 
#   in block <unit> at <unknown file> line 1␤»

方法 Failure§

method Failure(Exception:D: --> Failure:D)

自 Rakudo 编译器的 2022.06 版本起可用。

Exception 强制转换为 Failure 对象。

例程 die§

multi  die()
multi  die(*@message)
multi  die(Exception:D $e)
method die(Exception:D:)

抛出致命 Exception。默认异常处理程序将列表的每个元素打印到 $*ERR(STDERR)。

die "Important reason";

如果未带参数调用子例程形式,则检查 $! 变量 的值。如果将其设置为 .DEFINITE 值,则其值将用作要抛出的 Exception(如果其类型为 Exception),否则,将其用作 X::AdHoc 异常的有效负载。如果 $! 不是 .DEFINITE,则将抛出有效负载为字符串 "Died"X::AdHoc

die 默认情况下将打印其发生的行号

die "Dead";
# OUTPUT: «(exit code 1) Dead␤ 
# in block <unit> at /tmp/dead.raku line 1␤␤» 

但是,该默认行为由 Exception 级别控制,因此可以通过使用 CATCH 捕获异常将其更改为我们想要的任何内容。例如,这可用于禁止行号。

CATCH {
  default {
    .payload.say
  }
};
die "Dead" # OUTPUT: «Dead␤» 

子例程 warn§

multi warn(*@message)

抛出一个可恢复的警告异常,该异常被视为控制异常,因此对于大多数正常异常处理程序而言是不可见的。最外层的控制处理程序会将警告打印到 $*ERR。在打印警告后,异常将在抛出处恢复。要覆盖此行为,请在 CONTROL 块中捕获异常。quietly {...} 块与 try {...} 块相反,因为它将禁止任何警告,但会通过致命异常。

要简单地打印到 $*ERR,请使用 notewarn 应保留在威胁情况下使用,而此时您不太想抛出异常。

warn "Warning message";

类型图§

Exception 的类型关系
raku-type-graph X::Control X::Control Exception Exception X::Control->Exception X::AdHoc X::AdHoc X::AdHoc->Exception X::Comp X::Comp X::Comp->Exception X::Anon::Augment X::Anon::Augment X::Anon::Augment->X::Comp X::Anon::Augment->Exception X::Anon::Multi X::Anon::Multi X::Anon::Multi->X::Comp X::Anon::Multi->Exception X::Assignment::RO X::Assignment::RO X::Assignment::RO->Exception X::Attribute::NoPackage X::Attribute::NoPackage X::Attribute::NoPackage->X::Comp X::Attribute::NoPackage->Exception X::Attribute::Package X::Attribute::Package X::Attribute::Package->X::Comp X::Attribute::Package->Exception X::Attribute::Required X::Attribute::Required X::Attribute::Required->Exception Any Any X::Attribute::Required->Any MOP MOP X::Attribute::Required->MOP X::Undeclared X::Undeclared X::Undeclared->X::Comp X::Undeclared->Exception X::Attribute::Undeclared X::Attribute::Undeclared X::Attribute::Undeclared->X::Undeclared X::Augment::NoSuchType X::Augment::NoSuchType X::Augment::NoSuchType->X::Comp X::Augment::NoSuchType->Exception X::Syntax X::Syntax X::Syntax->X::Comp X::Syntax->Exception X::Backslash::NonVariableDollar X::Backslash::NonVariableDollar X::Backslash::NonVariableDollar->X::Syntax X::Backslash::NonVariableDollar->Exception X::Backslash::NonVariableDollar->Exception X::Backslash::UnrecognizedSequence X::Backslash::UnrecognizedSequence X::Backslash::UnrecognizedSequence->X::Syntax X::Backslash::UnrecognizedSequence->Exception X::Backslash::UnrecognizedSequence->Exception X::Bind X::Bind X::Bind->Exception X::Bind::NativeType X::Bind::NativeType X::Bind::NativeType->X::Comp X::Bind::NativeType->Exception X::Bind::Slice X::Bind::Slice X::Bind::Slice->Exception X::Bind::ZenSlice X::Bind::ZenSlice X::Bind::ZenSlice->X::Bind::Slice X::Buf::AsStr X::Buf::AsStr X::Buf::AsStr->Exception X::Buf::Pack X::Buf::Pack X::Buf::Pack->Exception X::Buf::Pack::NonASCII X::Buf::Pack::NonASCII X::Buf::Pack::NonASCII->Exception X::Caller::NotDynamic X::Caller::NotDynamic X::Caller::NotDynamic->Exception X::Cannot::Empty X::Cannot::Empty X::Cannot::Empty->Exception X::Cannot::Lazy X::Cannot::Lazy X::Cannot::Lazy->Exception X::Channel::ReceiveOnClosed X::Channel::ReceiveOnClosed X::Channel::ReceiveOnClosed->Exception X::Channel::SendOnClosed X::Channel::SendOnClosed X::Channel::SendOnClosed->Exception X::Comp::AdHoc X::Comp::AdHoc X::Comp::AdHoc->X::AdHoc X::Comp::AdHoc->X::Comp X::Comp::AdHoc->Exception X::Comp::Group X::Comp::Group X::Comp::Group->Exception X::NYI X::NYI X::NYI->Exception X::Comp::NYI X::Comp::NYI X::Comp::NYI->X::Comp X::Comp::NYI->X::NYI X::Comp::NYI->Exception X::Trait::NotOnNative X::Trait::NotOnNative X::Trait::NotOnNative->Exception X::Comp::Trait::NotOnNative X::Comp::Trait::NotOnNative X::Comp::Trait::NotOnNative->X::Comp X::Comp::Trait::NotOnNative->X::Trait::NotOnNative X::Comp::Trait::NotOnNative->Exception X::Trait::Scope X::Trait::Scope X::Trait::Scope->Exception X::Comp::Trait::Scope X::Comp::Trait::Scope X::Comp::Trait::Scope->X::Comp X::Comp::Trait::Scope->X::Trait::Scope X::Comp::Trait::Scope->Exception X::Trait::Unknown X::Trait::Unknown X::Trait::Unknown->Exception X::Comp::Trait::Unknown X::Comp::Trait::Unknown X::Comp::Trait::Unknown->X::Comp X::Comp::Trait::Unknown->X::Trait::Unknown X::Comp::Trait::Unknown->Exception X::Composition::NotComposable X::Composition::NotComposable X::Composition::NotComposable->Exception X::Constructor::Positional X::Constructor::Positional X::Constructor::Positional->Exception X::ControlFlow X::ControlFlow X::ControlFlow->Exception X::ControlFlow::Return X::ControlFlow::Return X::ControlFlow::Return->X::ControlFlow X::Temporal X::Temporal X::Temporal->Exception X::DateTime::InvalidDeltaUnit X::DateTime::InvalidDeltaUnit X::DateTime::InvalidDeltaUnit->X::Temporal X::DateTime::InvalidDeltaUnit->Exception X::DateTime::TimezoneClash X::DateTime::TimezoneClash X::DateTime::TimezoneClash->X::Temporal X::DateTime::TimezoneClash->Exception X::Declaration::Scope X::Declaration::Scope X::Declaration::Scope->X::Comp X::Declaration::Scope->Exception X::Declaration::Scope::Multi X::Declaration::Scope::Multi X::Declaration::Scope::Multi->X::Declaration::Scope X::Does::TypeObject X::Does::TypeObject X::Does::TypeObject->Exception X::Dynamic::NotFound X::Dynamic::NotFound X::Dynamic::NotFound->Exception X::EXPORTHOW::Conflict X::EXPORTHOW::Conflict X::EXPORTHOW::Conflict->X::Comp X::EXPORTHOW::Conflict->Exception X::EXPORTHOW::InvalidDirective X::EXPORTHOW::InvalidDirective X::EXPORTHOW::InvalidDirective->X::Comp X::EXPORTHOW::InvalidDirective->Exception X::EXPORTHOW::NothingToSupersede X::EXPORTHOW::NothingToSupersede X::EXPORTHOW::NothingToSupersede->X::Comp X::EXPORTHOW::NothingToSupersede->Exception X::Eval::NoSuchLang X::Eval::NoSuchLang X::Eval::NoSuchLang->Exception X::Export::NameClash X::Export::NameClash X::Export::NameClash->Exception X::Hash::Store::OddNumber X::Hash::Store::OddNumber X::Hash::Store::OddNumber->Exception X::HyperOp::NonDWIM X::HyperOp::NonDWIM X::HyperOp::NonDWIM->Exception X::OS X::OS X::OS->Exception X::IO X::IO X::IO->X::OS X::IO->Exception X::IO::Chdir X::IO::Chdir X::IO::Chdir->X::IO X::IO::Chdir->Exception X::IO::Chdir->Exception X::IO::Chdir->Exception X::IO::Chmod X::IO::Chmod X::IO::Chmod->X::IO X::IO::Chmod->Exception X::IO::Chmod->Exception X::IO::Chmod->Exception X::IO::Copy X::IO::Copy X::IO::Copy->X::IO X::IO::Copy->Exception X::IO::Copy->Exception X::IO::Copy->Exception X::IO::Cwd X::IO::Cwd X::IO::Cwd->X::IO X::IO::Cwd->Exception X::IO::Cwd->Exception X::IO::Dir X::IO::Dir X::IO::Dir->X::IO X::IO::Dir->Exception X::IO::Dir->Exception X::IO::DoesNotExist X::IO::DoesNotExist X::IO::DoesNotExist->X::IO X::IO::DoesNotExist->Exception X::IO::DoesNotExist->Exception X::IO::Link X::IO::Link X::IO::Link->X::IO X::IO::Link->Exception X::IO::Link->Exception X::IO::Mkdir X::IO::Mkdir X::IO::Mkdir->X::IO X::IO::Mkdir->Exception X::IO::Mkdir->Exception X::IO::Move X::IO::Move X::IO::Move->X::IO X::IO::Move->Exception X::IO::Move->Exception X::IO::Rename X::IO::Rename X::IO::Rename->X::IO X::IO::Rename->Exception X::IO::Rename->Exception X::IO::Rmdir X::IO::Rmdir X::IO::Rmdir->X::IO X::IO::Rmdir->Exception X::IO::Rmdir->Exception X::IO::Symlink X::IO::Symlink X::IO::Symlink->X::IO X::IO::Symlink->Exception X::IO::Symlink->Exception X::IO::Unlink X::IO::Unlink X::IO::Unlink->X::IO X::IO::Unlink->Exception X::IO::Unlink->Exception X::IO::Unlink->Exception X::Import::MissingSymbols X::Import::MissingSymbols X::Import::MissingSymbols->Exception X::Import::OnlystarProto X::Import::OnlystarProto X::Import::OnlystarProto->X::Comp X::Import::OnlystarProto->Exception X::Import::Redeclaration X::Import::Redeclaration X::Import::Redeclaration->X::Comp X::Import::Redeclaration->Exception X::Inheritance::NotComposed X::Inheritance::NotComposed X::Inheritance::NotComposed->Exception X::Inheritance::Unsupported X::Inheritance::Unsupported X::Inheritance::Unsupported->Exception X::Localizer::NoContainer X::Localizer::NoContainer X::Localizer::NoContainer->Exception X::Method::InvalidQualifier X::Method::InvalidQualifier X::Method::InvalidQualifier->Exception X::Method::NotFound X::Method::NotFound X::Method::NotFound->Exception X::Method::Private::Permission X::Method::Private::Permission X::Method::Private::Permission->X::Comp X::Method::Private::Permission->Exception X::Method::Private::Unqualified X::Method::Private::Unqualified X::Method::Private::Unqualified->X::Comp X::Method::Private::Unqualified->Exception X::Mixin::NotComposable X::Mixin::NotComposable X::Mixin::NotComposable->Exception X::NoDispatcher X::NoDispatcher X::NoDispatcher->Exception X::Numeric::CannotConvert X::Numeric::CannotConvert X::Numeric::CannotConvert->Exception X::Numeric::Real X::Numeric::Real X::Numeric::Real->X::Numeric::CannotConvert X::Obsolete X::Obsolete X::Obsolete->X::Comp X::Obsolete->Exception X::OutOfRange X::OutOfRange X::OutOfRange->Exception X::Package::Stubbed X::Package::Stubbed X::Package::Stubbed->X::Comp X::Package::Stubbed->Exception X::Parameter::Default X::Parameter::Default X::Parameter::Default->X::Comp X::Parameter::Default->Exception X::Parameter::InvalidType X::Parameter::InvalidType X::Parameter::InvalidType->X::Comp X::Parameter::InvalidType->Exception X::Parameter::MultipleTypeConstraints X::Parameter::MultipleTypeConstraints X::Parameter::MultipleTypeConstraints->X::Comp X::Parameter::MultipleTypeConstraints->Exception X::Parameter::Placeholder X::Parameter::Placeholder X::Parameter::Placeholder->X::Comp X::Parameter::Placeholder->Exception X::Parameter::Twigil X::Parameter::Twigil X::Parameter::Twigil->X::Comp X::Parameter::Twigil->Exception X::Parameter::WrongOrder X::Parameter::WrongOrder X::Parameter::WrongOrder->X::Comp X::Parameter::WrongOrder->Exception X::Phaser::Multiple X::Phaser::Multiple X::Phaser::Multiple->X::Comp X::Phaser::Multiple->Exception X::Phaser::PrePost X::Phaser::PrePost X::Phaser::PrePost->Exception X::Placeholder::Block X::Placeholder::Block X::Placeholder::Block->X::Comp X::Placeholder::Block->Exception X::Placeholder::Mainline X::Placeholder::Mainline X::Placeholder::Mainline->X::Placeholder::Block X::Placeholder::NonPlaceholder X::Placeholder::NonPlaceholder X::Placeholder::NonPlaceholder->X::Comp X::Placeholder::NonPlaceholder->Exception X::Pod X::Pod X::PoisonedAlias X::PoisonedAlias X::PoisonedAlias->X::Comp X::PoisonedAlias->Exception X::Proc::Async X::Proc::Async X::Proc::Async->Exception X::Proc::Async::AlreadyStarted X::Proc::Async::AlreadyStarted X::Proc::Async::AlreadyStarted->X::Proc::Async X::Proc::Async::AlreadyStarted->Exception X::Proc::Async::BindOrUse X::Proc::Async::BindOrUse X::Proc::Async::BindOrUse->X::Proc::Async X::Proc::Async::BindOrUse->Exception X::Proc::Async::CharsOrBytes X::Proc::Async::CharsOrBytes X::Proc::Async::CharsOrBytes->X::Proc::Async X::Proc::Async::CharsOrBytes->Exception X::Proc::Async::MustBeStarted X::Proc::Async::MustBeStarted X::Proc::Async::MustBeStarted->X::Proc::Async X::Proc::Async::MustBeStarted->Exception X::Proc::Async::OpenForWriting X::Proc::Async::OpenForWriting X::Proc::Async::OpenForWriting->X::Proc::Async X::Proc::Async::OpenForWriting->Exception X::Proc::Async::TapBeforeSpawn X::Proc::Async::TapBeforeSpawn X::Proc::Async::TapBeforeSpawn->X::Proc::Async X::Proc::Async::TapBeforeSpawn->Exception X::Proc::Unsuccessful X::Proc::Unsuccessful X::Proc::Unsuccessful->Exception X::Promise::CauseOnlyValidOnBroken X::Promise::CauseOnlyValidOnBroken X::Promise::CauseOnlyValidOnBroken->Exception X::Promise::Vowed X::Promise::Vowed X::Promise::Vowed->Exception X::PseudoPackage::InDeclaration X::PseudoPackage::InDeclaration X::PseudoPackage::InDeclaration->X::Comp X::PseudoPackage::InDeclaration->Exception X::Redeclaration X::Redeclaration X::Redeclaration->X::Comp X::Redeclaration->Exception X::Redeclaration::Outer X::Redeclaration::Outer X::Redeclaration::Outer->X::Comp X::Redeclaration::Outer->Exception X::Role::Initialization X::Role::Initialization X::Role::Initialization->Exception X::Routine::Unwrap X::Routine::Unwrap X::Routine::Unwrap->Exception X::Scheduler::CueInNaNSeconds X::Scheduler::CueInNaNSeconds X::Scheduler::CueInNaNSeconds->Exception X::Seq::Consumed X::Seq::Consumed X::Seq::Consumed->Exception X::Sequence::Deduction X::Sequence::Deduction X::Sequence::Deduction->Exception X::Set::Coerce X::Set::Coerce X::Set::Coerce->Exception X::Signature::NameClash X::Signature::NameClash X::Signature::NameClash->X::Comp X::Signature::NameClash->Exception X::Signature::Placeholder X::Signature::Placeholder X::Signature::Placeholder->X::Comp X::Signature::Placeholder->Exception X::Str::Match::x X::Str::Match::x X::Str::Match::x->Exception X::Str::Numeric X::Str::Numeric X::Str::Numeric->Exception X::Str::Trans::IllegalKey X::Str::Trans::IllegalKey X::Str::Trans::IllegalKey->Exception X::Str::Trans::InvalidArg X::Str::Trans::InvalidArg X::Str::Trans::InvalidArg->Exception X::StubCode X::StubCode X::StubCode->Exception X::Syntax::AddCategorical::TooFewParts X::Syntax::AddCategorical::TooFewParts X::Syntax::AddCategorical::TooFewParts->X::Syntax X::Syntax::AddCategorical::TooFewParts->Exception X::Syntax::AddCategorical::TooFewParts->Exception X::Syntax::AddCategorical::TooManyParts X::Syntax::AddCategorical::TooManyParts X::Syntax::AddCategorical::TooManyParts->X::Syntax X::Syntax::AddCategorical::TooManyParts->Exception X::Syntax::AddCategorical::TooManyParts->Exception X::Syntax::Argument::MOPMacro X::Syntax::Argument::MOPMacro X::Syntax::Argument::MOPMacro->X::Syntax X::Syntax::Argument::MOPMacro->Exception X::Syntax::Argument::MOPMacro->Exception X::Syntax::Augment::Illegal X::Syntax::Augment::Illegal X::Syntax::Augment::Illegal->X::Syntax X::Syntax::Augment::Illegal->Exception X::Syntax::Augment::Illegal->Exception X::Syntax::Augment::WithoutMonkeyTyping X::Syntax::Augment::WithoutMonkeyTyping X::Syntax::Augment::WithoutMonkeyTyping->X::Syntax X::Syntax::Augment::WithoutMonkeyTyping->Exception X::Syntax::Augment::WithoutMonkeyTyping->Exception X::Syntax::BlockGobbled X::Syntax::BlockGobbled X::Syntax::BlockGobbled->X::Syntax X::Syntax::BlockGobbled->Exception X::Syntax::CannotMeta X::Syntax::CannotMeta X::Syntax::CannotMeta->X::Syntax X::Syntax::CannotMeta->Exception X::Syntax::CannotMeta->Exception X::Syntax::Comment::Embedded X::Syntax::Comment::Embedded X::Syntax::Comment::Embedded->X::Syntax X::Syntax::Comment::Embedded->Exception X::Syntax::Comment::Embedded->Exception X::Syntax::Confused X::Syntax::Confused X::Syntax::Confused->X::Syntax X::Syntax::Confused->Exception X::Syntax::Confused->Exception X::Syntax::Extension::Category X::Syntax::Extension::Category X::Syntax::Extension::Category->X::Syntax X::Syntax::Extension::Category->Exception X::Syntax::Extension::Category->Exception X::Syntax::Extension::Null X::Syntax::Extension::Null X::Syntax::Extension::Null->X::Syntax X::Syntax::Extension::Null->Exception X::Syntax::InfixInTermPosition X::Syntax::InfixInTermPosition X::Syntax::InfixInTermPosition->X::Syntax X::Syntax::InfixInTermPosition->Exception X::Syntax::InfixInTermPosition->Exception X::Syntax::KeywordAsFunction X::Syntax::KeywordAsFunction X::Syntax::KeywordAsFunction->X::Syntax X::Syntax::KeywordAsFunction->Exception X::Syntax::KeywordAsFunction->Exception X::Syntax::Malformed X::Syntax::Malformed X::Syntax::Malformed->X::Syntax X::Syntax::Malformed->Exception X::Syntax::Malformed::Elsif X::Syntax::Malformed::Elsif X::Syntax::Malformed::Elsif->X::Syntax X::Syntax::Malformed::Elsif->Exception X::Syntax::Missing X::Syntax::Missing X::Syntax::Missing->X::Syntax X::Syntax::Missing->Exception X::Syntax::Missing->Exception X::Syntax::Name::Null X::Syntax::Name::Null X::Syntax::Name::Null->X::Syntax X::Syntax::Name::Null->Exception X::Syntax::NegatedPair X::Syntax::NegatedPair X::Syntax::NegatedPair->X::Syntax X::Syntax::NegatedPair->Exception X::Syntax::NegatedPair->Exception X::Syntax::NoSelf X::Syntax::NoSelf X::Syntax::NoSelf->X::Syntax X::Syntax::NoSelf->Exception X::Syntax::NoSelf->Exception X::Syntax::NonAssociative X::Syntax::NonAssociative X::Syntax::NonAssociative->X::Syntax X::Syntax::NonAssociative->Exception X::Syntax::NonAssociative->Exception X::Syntax::Number::RadixOutOfRange X::Syntax::Number::RadixOutOfRange X::Syntax::Number::RadixOutOfRange->X::Syntax X::Syntax::Number::RadixOutOfRange->Exception X::Syntax::P5 X::Syntax::P5 X::Syntax::P5->X::Syntax X::Syntax::P5->Exception X::Syntax::Perl5Var X::Syntax::Perl5Var X::Syntax::Perl5Var->X::Syntax X::Syntax::Perl5Var->Exception X::Syntax::Perl5Var->Exception X::Syntax::Pod::BeginWithoutEnd X::Syntax::Pod::BeginWithoutEnd X::Syntax::Pod::BeginWithoutEnd->X::Syntax X::Syntax::Pod::BeginWithoutEnd->X::Pod X::Syntax::Pod::BeginWithoutEnd->Exception X::Syntax::Pod::BeginWithoutEnd->Exception X::Syntax::Pod::BeginWithoutIdentifier X::Syntax::Pod::BeginWithoutIdentifier X::Syntax::Pod::BeginWithoutIdentifier->X::Syntax X::Syntax::Pod::BeginWithoutIdentifier->X::Pod X::Syntax::Pod::BeginWithoutIdentifier->Exception X::Syntax::Pod::BeginWithoutIdentifier->Exception X::Syntax::Regex::Adverb X::Syntax::Regex::Adverb X::Syntax::Regex::Adverb->X::Syntax X::Syntax::Regex::Adverb->Exception X::Syntax::Regex::Adverb->Exception X::Syntax::Regex::MalformedRange X::Syntax::Regex::MalformedRange X::Syntax::Regex::MalformedRange->X::Syntax X::Syntax::Regex::MalformedRange->Exception X::Syntax::Regex::NullRegex X::Syntax::Regex::NullRegex X::Syntax::Regex::NullRegex->X::Syntax X::Syntax::Regex::NullRegex->Exception X::Syntax::Regex::NullRegex->Exception X::Syntax::Regex::SolitaryQuantifier X::Syntax::Regex::SolitaryQuantifier X::Syntax::Regex::SolitaryQuantifier->X::Syntax X::Syntax::Regex::SolitaryQuantifier->Exception X::Syntax::Regex::SolitaryQuantifier->Exception X::Syntax::Regex::SpacesInBareRange X::Syntax::Regex::SpacesInBareRange X::Syntax::Regex::SpacesInBareRange->X::Syntax X::Syntax::Regex::SpacesInBareRange->Exception X::Syntax::Regex::SpacesInBareRange->Exception X::Syntax::Regex::UnrecognizedMetachar X::Syntax::Regex::UnrecognizedMetachar X::Syntax::Regex::UnrecognizedMetachar->X::Syntax X::Syntax::Regex::UnrecognizedMetachar->Exception X::Syntax::Regex::UnrecognizedMetachar->Exception X::Syntax::Regex::Unspace X::Syntax::Regex::Unspace X::Syntax::Regex::Unspace->X::Syntax X::Syntax::Regex::Unspace->Exception X::Syntax::Regex::Unspace->Exception X::Syntax::Regex::Unterminated X::Syntax::Regex::Unterminated X::Syntax::Regex::Unterminated->X::Syntax X::Syntax::Regex::Unterminated->Exception X::Syntax::Regex::Unterminated->Exception X::Syntax::Reserved X::Syntax::Reserved X::Syntax::Reserved->X::Syntax X::Syntax::Reserved->Exception X::Syntax::Reserved->Exception X::Syntax::Self::WithoutObject X::Syntax::Self::WithoutObject X::Syntax::Self::WithoutObject->X::Syntax X::Syntax::Self::WithoutObject->Exception X::Syntax::Signature::InvocantMarker X::Syntax::Signature::InvocantMarker X::Syntax::Signature::InvocantMarker->X::Syntax X::Syntax::Signature::InvocantMarker->Exception X::Syntax::Term::MissingInitializer X::Syntax::Term::MissingInitializer X::Syntax::Term::MissingInitializer->X::Syntax X::Syntax::Term::MissingInitializer->Exception X::Syntax::Term::MissingInitializer->Exception X::Syntax::UnlessElse X::Syntax::UnlessElse X::Syntax::UnlessElse->X::Syntax X::Syntax::UnlessElse->Exception X::Syntax::UnlessElse->Exception X::Syntax::Variable::IndirectDeclaration X::Syntax::Variable::IndirectDeclaration X::Syntax::Variable::IndirectDeclaration->X::Syntax X::Syntax::Variable::IndirectDeclaration->Exception X::Syntax::Variable::IndirectDeclaration->Exception X::Syntax::Variable::Match X::Syntax::Variable::Match X::Syntax::Variable::Match->X::Syntax X::Syntax::Variable::Match->Exception X::Syntax::Variable::Match->Exception X::Syntax::Variable::Numeric X::Syntax::Variable::Numeric X::Syntax::Variable::Numeric->X::Syntax X::Syntax::Variable::Numeric->Exception X::Syntax::Variable::Numeric->Exception X::Syntax::Variable::Twigil X::Syntax::Variable::Twigil X::Syntax::Variable::Twigil->X::Syntax X::Syntax::Variable::Twigil->Exception X::Syntax::Variable::Twigil->Exception X::Syntax::VirtualCall X::Syntax::VirtualCall X::Syntax::VirtualCall->X::Syntax X::Syntax::VirtualCall->Exception X::Syntax::VirtualCall->Exception X::Temporal::InvalidFormat X::Temporal::InvalidFormat X::Temporal::InvalidFormat->X::Temporal X::Temporal::InvalidFormat->Exception X::TypeCheck X::TypeCheck X::TypeCheck->Exception X::TypeCheck::Assignment X::TypeCheck::Assignment X::TypeCheck::Assignment->X::TypeCheck X::TypeCheck::Binding X::TypeCheck::Binding X::TypeCheck::Binding->X::TypeCheck X::TypeCheck::Return X::TypeCheck::Return X::TypeCheck::Return->X::TypeCheck X::TypeCheck::Splice X::TypeCheck::Splice X::TypeCheck::Splice->X::TypeCheck X::Undeclared::Symbols X::Undeclared::Symbols X::Undeclared::Symbols->X::Comp X::Undeclared::Symbols->Exception X::Value::Dynamic X::Value::Dynamic X::Value::Dynamic->X::Comp X::Value::Dynamic->Exception Exception->Any Mu Mu Any->Mu

展开上面的图表