SORU
5 EYLÜL 2009, CUMARTESİ


Ne'iyi bir şekilde JavaScript Hata uzatmak için?

JS kodum bazı şeyler atmak istiyorum ve onları örneğin Hata olmak istiyorum, ama aynı zamanda onları başka bir şey olmak istiyorum.

Python, genellikle, bir Özel alt sınıf.

JS yapılması uygun olan şey nedir?

CEVAP
9 Mart 2011, ÇARŞAMBA


Hata nesne var sadece standart alanı message malıdır. (MDN veya EcmaScript Dil Belirtimi, bölüm 15.11)Her şey belirli bir platform.

Mosts ortamlar stack özelliği, ama fileName lineNumber pratik miras olarak kullanılmak üzere bir işe yaramıyor.

Yani, minimalist bir yaklaşım

function MyError(message) {
    this.name = 'MyError';
    this.message = message;
    this.stack = (new Error()).stack;
}
MyError.prototype = new Error;  // <-- remove this if you do not 
                                //     want MyError to be instanceof Error

Bu, istenmeyen öğeleri yığın Al'ı kokla ve dosya adı ve lineNumber gibi bilgiler elde edebilirsin, ama bunu yaparken platform JavaScript şu anda üzerine çalıştığı hakkında bilgi gerektirir. Çoğu gereksiz ... ve eğer gerçekten istiyorsanız otopsi yapabilirsiniz.

Safarikayda değer bir istisna değildir. stack özellik yok, ama throw anahtar kelime sourceURL line atılan nesnenin özelliklerini ayarlar. O şeylerin doğru olmasını garanti etmektedir.

Test durumları ben burada bulunabilir: JavaScript self-made Error object comparison.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • hockeywebcasts

    hockeywebcas

    31 EKİM 2012
  • jat4011

    jat4011

    16 EKİM 2010
  • Nick Pitera

    Nick Pitera

    8 NİSAN 2006