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

  • Blue Lightning TV

    Blue Lightni

    9 EKİM 2011
  • geraldnonadoez

    geraldnonado

    3 Temmuz 2013
  • How It Should Have Ended

    How It Shoul

    5 Mart 2007