Perl 6 异常处理与系统交互全解析
1. 异常处理
在大多数情况下,使用 X::AdHoc 作为特定应用程序的异常处理方式就足够了。不过,更好的做法是创建自己的异常类,这样就能更精准地处理异常。自定义的异常类需要继承自 Exception 类。以下是一个示例:
unit class X::Cards::NoMore is Exception;
method message() {
"No more cards left, sorry";
}
在上述代码中,仅需重写 message 方法即可。然后将这个异常类包含到模块(这里命名为 Deckie )中:
use X::Cards::NoMore;
# @.cards, _shuffle and TWEAK defined as usual
method draw ( UInt $how-many = 1 --> Slip ) {
if ( ! @!cards.elems ) {
X::Cards::NoMore.new.throw
}
# Rest will remain the same
}
在程序中使用这个异常类的方式与之前类似。当反复调用 draw 方法,并且牌堆耗尽时,就会抛出指定的异常消息。若该异常未被捕获,程序将打印特定消息
超级会员免费看
订阅专栏 解锁全文
2041

被折叠的 条评论
为什么被折叠?



