JavaScript
'un eval()
işleviyle yürütmem gereken bir kod var (Tamam olup olmadığını tartışmak isterseniz eval()
işlevini kullanın lütfen bilgi ekleyin Burada: Why is using the JavaScript eval function a bad idea? ama buna odaklanmayın).İstisnasız çalıştıran başka birinin denemesini denedikten sonra deneyin
eval()
fonksiyonu ile yürütülür bazı kod sonra
ve try-catch
blokta herhangi istisna verir olmasaydı, bu kod değişir ve başka try-catch
bloğunda tekrar eval()
işlevi yürütmek zorunda kalacaktır.
Sorunlar, bir try-catch
bloğunu diğerinin üzerine koyduğumda, bunların birlikte çalıştırılacağını ve kodun temizlenmeyeceğini, böylece eval()
işlevinin iki kez çalıştırılacağını bildirir. Şunun gibi:
var code = some code here;
try{
eval(code); //Here the code has divs animations
$("#animate").promise().done(function(){
checkAnimation();
//Clear code
});
}catch(error){
console.log(error);
}
try{
eval(code); //Animations with the same div
$("#animate").promise().done(function(){
checkAnimation();
});
}catch(error){
console.log(error);
}
Ben de bir finally
ifade edilmemiş olması gördüm ama Try-catch bloğu bir istisna yaptık ya da değil bu yüzden benim için kullanışlı değildir eğer olursa olsun çalıştırılacaktır. Ben
Ben kodu temizledikten sonra ikinci try-catch
blok içerebilir ama iyi bir uygulama olacağını başka fonksiyonu ve kod içinde olduğunu çünkü bilmiyorum düşünüyorum düşünüyorum ne
Bu işlevin içinde de bir istisna oluşturabilir.
Sorum
İlk try-catch
blok istisnasız çalıştı sadece try-catch
bloğu çalıştırabilir mi?
DÜZENLEME: Kodumu düzenledim çünkü bunu ikinci try-catch
'a eklemeyi unutmuştum ayrıca bir animasyon da vardı.
Şimdiden teşekkürler!
İkinci "try..catch" işlevini, "done" geri bildirimin içine koyun ...!? – deceze
@deceze ama daha önce koyduğum gibi kötü bir uygulama olmaz mı? Çünkü 'checkAnimation' işlevi de bir istisna verebilir. –
"Yapılan" geri aramadaki herhangi bir şey ilk "try..catch" bloğunuz tarafından ele alınmaz! Çünkü eşzamansız olarak çalıştırılıyor. Yine de bu geri dönüşün içinde tamamen yeni, bağımsız bir 'try..catch' bloğu kurmak zorunda kalacaksınız. – deceze