【发布时间】:2019-01-05 11:42:44
【问题描述】:
我正在对大约 10000 行数字进行分析,其中一些行给了我错误:“在数字上下文中使用 Any 类型的未初始化值”。我正在尝试捕获此错误以查看导致问题的行。但是,X::TypeCheck 和其他 X::* 类似乎不能有效地捕捉 Nil 或 Any 的自动激活。例如:
try { say Any + 1; CATCH { default { say "oh-no"; } }; }
打印出警告消息后仍然给我“1”的答案,并且没有说我想要的“哦-不”。
捕获这些非致命自动激活错误的正确方法是什么?顺便问一下,有没有核动力的 perl6 调试器?
非常感谢!!!
lisprog
【问题讨论】:
-
相关助记符:对于致命异常,P6 变得疯狂并准备 CRASH,您必须使用
CATCH捕获 CRASH 并记住正确处理 CRAZY 程序状态,如果您足够疯狂.resume。但是对于 非 致命异常,P6 保持冷静和可控,您也可以保持冷静,什么也不做,或者您可以使用CONTROL进行控制,并在您不假思索地完成时使用.resume关于它。具体来说,say 1/0给你带来了一个你必须抓住的崩溃和你必须处理的疯狂。say Any + 1保持冷静,除非您想使用CONTROL进行控制,否则您无需执行任何操作。 -
再次非常感谢你,raiph !!!并感谢助记符:-)
标签: exception raku autovivification