2013-05-31 21 views
5

Uncaught ReferenceError düzeltmesi için genel bir çözümdür.Düzeltme Başarısız ReferenceError

Hata ayıklama kodunun üretime geçmesini sağlamak için bir işlev oluşturuyorum. Ancak bir değişkenin bulunmadığı ancak hata ayıklama kodunun hala mevcut olduğu durumlar olabilir. Böyle bir durumda js'yi durdurmamalıdır.

function debug(data, type){ 
    if(type == 'alert' && mode !== 'production'){ 
     alert(data); 
    } 
    else if(type == 'halt' && mode !== 'production'){ 
     debugger; 
    } 
    else{ 
     console.debug(data); 
    } 
} 

debug(xyz) //xyz doesn't exists 
+8

'ayıklama (typeof xyz === tanımlanmamış "tanımsız":? Xyz);' belki? – Ian

+0

Bir macr kullanabilirsiniz ... oh, bekle. –

+3

Hata ayıklama kodunuzu neden üretimde çalıştırmak istiyorsunuz? –

cevap

2

Sen üretimde ayıklama kod çalıştıran kaçınmalıdır.

En iyisi, bunu kaldıran bir oluşturma işlemine sahip olmaktır, ancak hata ayıklama çağrılarınızı tamamlayan basit bir bayrak da çalışır.

window.DEBUG = true; 

//... 

if (DEBUG) { 
    debug(xyz) //xyz doesn't exist... and it won't matter when DEBUG === false 
} 

Bu, her yerde bildirilmemiş değişkenler için yapılan testlerden daha temiz olacaktır. Sonuçta, hata ayıklamanın bir kısmı, bildirilmemiş değişkenlere yanlışlıkla erişim olduğunu bulmaktır. Bu yüzden, hata ayıklama yaparken, bu ReferenceErrors'u görmek istiyoruz, böylece onları düzeltebiliriz.

0
try{ 
if(Debug){ 
    debug(data,code) 
} 
} 
catch{ 
// swallow or do whatever you want 
} 
İlgili konular