मैं पर्ल 6 के नियंत्रण अपवादों के साथ खेल रहा हूं। एक warn एक नियंत्रण अपवाद उठाता है जो सामान्य अपवाद नियंत्रण प्रवाह के लिए अदृश्य है, और यह अपवाद स्वयं को फिर से शुरू करता है। यह थोड़े शांत है।मुझे पर्ल 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";
}
यह दोनों आग की तरह दिखता है:
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
सूचना वहाँ एक Moar आतंक है, जो I've raise an issue for मैं किसी खास को देखने पर्ल 6 वास्तव में क्या करता है के अलावा अन्य समस्या को हल करने का प्रयास नहीं कर रहा हूँ। लेकिन, मैं वास्तव में इसके बारे में नहीं पूछ रहा हूँ।
मैं यहां प्रवाह की तस्वीर के बारे में उत्सुक हूं। मुझे उम्मीद है कि उप में CONTROL
अपवाद और फिर से शुरू करेगा, इसलिए यह try
तक नहीं होगा। यह प्रवाह कैसे होना चाहिए?
इसके अलावा, अपवाद देखें CX::Warn
। मुझे नहीं लगता कि मैं अजीब कुछ किया है, लेकिन Perl 6 types भी सूची नहीं है X::Warn
ध्यान दें कि संपूर्ण 'सीएक्स ::' नामस्थान उस पृष्ठ पर दस्तावेज नहीं है ... – Christoph
कृपया अनुपलब्ध दस्तावेज़ों के लिए https://github.com/perl6/doc पर कोई समस्या जोड़ें। धन्यवाद! –
डॉक्टर समस्या: https://github.com/perl6/doc/issues/1268 –