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

  • Orson Wang

    Orson Wang

    28 EKİM 2006
  • SuppressedStorm

    SuppressedSt

    11 AĞUSTOS 2013
  • wowchick16

    wowchick16

    17 Mart 2007