try..catch
JavaScript'te nadir görülen bir nedenin , dilin hataya oldukça tolerans gösterdiğine inanıyorum . Durumların büyük çoğunluğu kod kontrolleri, iyi varsayılanlar ve zaman uyumsuz olaylar kullanılarak ele alınabilir. Bazı durumlarda, yalnızca bir desen kullanmak sorunları önler:
function Foo() {
//this may or may not be called as a constructor!!
//could accidentally overwrite properties on window
}
function Bar() {
if (!(this instanceof Bar)) {
return new Bar();
}
//this will only work on Bar objects, and wont impact window
}
İstisnaların ortaya çıkmasına neden olan diğer dillerdeki bazı önemli konular JS'de yoktur. Tip döküm, zamanın büyük çoğunluğuna ihtiyaç duymaz. Bunun yerine, tercih edilen yöntem tipik olarak kontrol özelliğidir (belirli bir arayüzü zorlamak):
function doFoo(arg) {
if (arg.foo) {
arg.foo();
} else {
Bar.prototype.foo.call(arg);
}
}
Dilin async
/ eklenmesiyle daha yaygın hale geliyor. Eşzamansız formu olduğu vaat ediyor, birinin beklemesi gerekenleri anlamlandırıyor:await
try..catch
try..catch
doSomething().then(
doSomethingWithResult,
doSomethingWithError
)
bunun yerine şöyle yazılmalı:
try {
const result = await doSomething()
doSomethingWithResult(result)
} catch (e) {
doSomethingWithError(e)
}
While in java or *any other language* it is mandatory to have error handling...
- Pek sayılmaz. Java, evet, ama try-catch konusunda ısrar etmeyen birçok dil var (C # gibi).