Bu, "How can I get around a ‘die’ call in a Perl library I can’t modify?" numaralı izindir.Perl alt yordamında hem yakalanan hem de yakalanmamış hataları nasıl ele alırım?
Bir Kütüphane-Hangi-Çöküyor-Bazen birçok kez çağırır bir alt yordamı var. Aksine kanepenin daha bir eval {} ile bu alt yordam içinde her çağrı, ben sadece ölmesine izin ve benim altyordamını çağıran düzeyde, bir değerlendirme {} kullanın: hata koşulları vardır, ancak
my $status=eval{function($param);};
unless($status){print [email protected]; next;}; # print error and go to
# next file if function() fails
ben işlev yapabilir(). Hem yakalanan hem de yakalanmayan hatalar için doğru davranışı elde edebilmem için alt rutinde hata yakalama ve çağrı rutinini tasarlamanın en uygun/zarif yolu nedir? Ne yapmak istediğinizi tam olarak emin değilim
sub function {
eval {
die "error that can be handled\n";
1;
} or do {
#propagate the error if it isn't the one we expect
die [email protected] unless [email protected] eq "error that can be handled\n";
#handle the error
};
die "uncaught error";
}
eval { function(); 1 } or do {
warn "caught error [email protected]";
};
Köşeli parantezleriniz sert görünüyor! +1 – Axeman
Bu sabah cila yaptım. –