ilk şey:
karar vermek gerçekten size kalmış Hava yapmanız gerekir ya da olmamalı throw
ziyade istisna return
bir hata kodu (veya null
, ya da her neyse).
Bildiğim kadarıyla, hatalarını düzgün bir şekilde ele almak yerine, istisnalar atma konusunda çok fazla sorun yoktur.. (Hata JS veya)
zaman bir özel durum için doğru geçerli:
Bu şu soruyu beraberinde getiriyor?
soru burada oldukça zor ve bayraklı olmalıdır ve "temelli öncelikle görüş" olarak kapalı bu yana
Benzer bir soru (iyi .. belki de .. kişisel görüş kadardır ..Bu kesin bir soru) zaten istedi ve here cevap verdi ve kendimi bu açıklamada özetlenebilir kabul cevapla kabul bulmak olmuştur:
Kesinlikle! Ne zaman ve sadece fonksiyon önkoşulları (argümanlar hakkında varsayımlar) bozulduğunda bir istisna atılır! - @Lightman
senin durumda
İşlevinizden (beklenen parametresi) varsayımları ihlal edilmesi durumunda: JS required
gibi bir işlev parametresini ayarlamak için herhangi bir sözdizimi yapısı sağlamaz çünkü EVET, bir özel durum. , here alınan
function missingParameterHandler() {
throw new Error('Missing parameter');
}
function foo(aRequiredParameter = missingParameterHandler()) {
// Use your required parameter
console.log("Hello " + aRequiredParameter);
}
// Hence:
foo("World") // OK
foo() // -> Throws exception
Örnek here ederken bu özellik hakkında daha fazla örnek bulabilirsiniz:
ES6 ile istediğiniz davranışı gibi bir şey zorlamak için
default parameters
kullanabilirsiniz.
Bu, aRequireParameter
iletilmediğinde varsayılan değerine (bu durumda çağrılır) atanması ve dolayısıyla istisna/hatanın atılması nedeniyle elde edilebilir.
Bu görüşlere göre. Kodları yavaşlatarak, programlarını doğru bir şekilde çağırmak için programcıda bırakarak bu tür kontrolleri dahil etme eğiliminde değilim. Alternatif olarak, işlevlerin her zaman doğru sayıda argüman ile çağrılmasını sağlayan [TypeScript] (http://www.typescriptlang.org/) gibi statik olarak yazılmış bir dil kullanabilirsiniz. –
@ raiti13 Bazı cevaplar size yardımcı olduysa lütfen gelecekteki kullanıcılara yardım etmeyi kabul edin :) – FredMaggiowski