Deneyin::hala istisna 5.14 ya da geç Perl?işleme önerilen Minik
Perl topluluğun görüş birliği Try::Tiny
özel durumlar işlemek için tercih edilen bir yol gibi görünüyor.
Perl 5.14 kullandığım sürüm) 21* *Try::Tiny
adresleri eval
issues. Try::Tiny
hala bana herhangi bir yarar sağlayacak?
CEVAP
Her zaman kişisel bir tercih meselesi. Tercih edersiniz
my $rv;
if (!eval { $rv = f(); 1 } ) {
...
}
ya
my $rv = try {
f();
} catch {
...
};
Ama ikincisi anon subs kullanır unutmayın return
gibi next
ve benzeri karışıyor. ::Dene-yakala Minik iyi iletişim kanalları eklediğinizde çok daha karmaşık catch bloğu ve dışı arasında sonunda olabilir.
En iyi durumda (basit) istisna üzerinde dönen $rv
özel durum yok her zaman doğru olduğu için senaryo. Aşağıdaki gibi görünecektir:
my $rv;
if ($rv = eval { f() }) {
...
return;
}
vs
my $rv = try {
f();
} catch {
...
};
if (!$rv) {
return;
}
Try::Tiny yerine TryCatch ben böyle bir modül kullanmak istiyorum.
Perl için değişim sadece if ($@)
tekrar yapmak anlamına gelir. Diğer bir deyişle,
my $rv;
if (!eval { $rv = f(); 1 } ) {
...
}
yazılabilir
my $rv = eval { f() };
if ($@) {
...
}
Deneyin bir yakalamak Throwable İstisn...
Python: eğer bir dize bir tamsayı Dışı...
ASP.NET içinde MaxJsonLength istisna M...
Python deneyin...virgül vs' dışın...
Nasıl Perl karma birleştirebilir miyim...