나는 Perl 6의 제어 예외를 가지고 놀고있다. warn은 정상적인 예외 제어 흐름에 보이지 않는 제어 예외를 발생시키고 그 예외는 다시 시작됩니다. 그건 좀 멋지다.어디서 Perl 6 경고 제어 예외를 잡아야합니까?
그래서이 문제를 해결하기 위해 어떤 일이 일어날지를 알기 위해 이것을 작성했습니다.
use v6;
try {
CONTROL {
put "Caught an exception, in the try";
put .^name;
}
do-that-thing-you-do();
}
sub do-that-thing-you-do {
CONTROL {
put "Caught an exception, in the sub";
put .^name;
}
warn "This is a warning";
}
그것은 모두 불과 같습니다하십시오 Moar 패닉, I've raise an issue for 거기
Caught an exception, in the sub
CX::Warn
Caught an exception, in the try
CX::Warn
This is a warning
in sub do-that-thing-you-do at resume.p6 line 16
MoarVM panic: Trying to unwind over wrong handler
공지 펄 6가 실제로 무엇을보고 이외의 특정 문제를 해결하기 위해 노력하고 있지 않다. 그러나, 나는 그것에 관해 정말로 묻지 않고있다.
여기 그림의 흐름이 궁금합니다. 나는 하위의 CONTROL
이 예외를 잡아서 다시 시작하기를 기대 했으므로 try
까지 퍼콜하지 않을 것입니다. 그 흐름은 어떻게해야합니까?
또한 예외는 CX::Warn
입니다. 나는 이상한 뭔가 일을했다고 생각하지 않지만, Perl 6 types이조차 목록 할 X::Warn
'CX ::'네임 스페이스 전체가 해당 페이지에 문서화되어 있지 않습니다 ... – Christoph
누락 된 문서는 https://github.com/perl6/doc에 문제를 추가하십시오. 고맙습니다! –
문서 문제 : https://github.com/perl6/doc/issues/1268 –