2009-12-14 18 views
24

JavaScript'teki istisnaları yakalarken/kullanırken, kural dışı durum oluştuğunda çağrı yığınının ne olduğunu nasıl belirleyebilirim? (ve mümkünse satır numarasının ne olduğu)JavaScript kural dışı durum işleme - satır numarasının görüntülenmesi

try 
{ 
    // etc... 
} 
catch (ex) 
{ 
    // At this point here I want to be able to print out a detailed exception 
    // message, complete with call stack, and if possible line numbers. 
} 

cevap

16

Her tarayıcı bunu farklı şekilde ele alır, bu yüzden bunu yapmanın evrensel bir yolu yoktur. This blog post, desteklenen çoğu tarayıcı için yığın izini boşaltmak için iyi bir kod içeriyor. Hat numarasını vermenin iyi bir yolu olduğunu düşünmüyorum.

Özellikle bir işlevde hata ayıklamak istiyorsanız, Firebug iyi yığın izleme işlevine sahiptir (vis console.trace()).

+0

Tabii ki, FireBug! – Upperstage

+1

Bu blog oldukça eski (2008). Daha iyi bir yol olmalı. – RayLoveless

+0

blog yazısı öldü ... –

11

this'a bakın.

bir yolu

mevcut bilgileri analiz etmek:

try 
{ 
    doInit(); 
} catch(err) 
{ 
    var vDebug = ""; 
    for (var prop in err) 
    { 
     vDebug += "property: "+ prop+ " value: ["+ err[prop]+ "]\n"; 
    } 
    vDebug += "toString(): " + " value: [" + err.toString() + "]"; 
    status.rawValue = vDebug; 
} 
+0

Sadece bir not - eğer node sunucu tarafı kullanıyorsanız bu oldukça güzel çalışıyor. Giden - Gönderdiğiniz için teşekkürler! – j03m

1

Ben JavaScript IE altında çalışan bir özel durum yakalandı noktada bir yığın izleme yakalamak mümkün olmadığını keşfettim. this PDF'ye göre, IE'de yığın izini almanın tek yolu, istisnayı ele almamanızdır.

İlgili konular