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

  • campos9896

    campos9896

    24 Mart 2012
  • Kim Barbin

    Kim Barbin

    3 Mayıs 2012
  • sebsebdouze

    sebsebdouze

    7 ŞUBAT 2008