SORU
15 EKİM 2008, ÇARŞAMBA


JavaScript Özel Durum İşleme

JavaScript içinde atılan TÜM özel durumları yakalamak için en iyi tekniği nedir?

Belli ki, en iyi yöntem deniyor kullanın...yakalamaktır. Ama ansynchronous geri aramalar ve benzeri ile, bu zor alabilirsiniz.

IE ve Gecko tarayıcılar pencere desteği biliyorum.onerror, ama Opera ve Safari ne dersiniz?

İşte Merkez özel durum işleme bir çözüm istiyorum bu test bir grup:

// ErrorHandler-Test1
var test = null;
test.arg = 5;
// ErrorHandler-Test2
throw (new Error("Hello"));
// ErrorHandler-Test3
throw "Hello again";
// ErrorHandler-Test4
throw {
    myMessage: "stuff",
    customProperty: 5,
    anArray: [1, 2, 3]
};
// ErrorHandler-Test5
try {
    var test2 = null;
    test2.arg = 5;
} catch(e) {
    ErrorHandler.handleError(e);
}
// ErrorHandler-Test6
try {
    throw (new Error("Goodbye"));
} catch(e) {
    ErrorHandler.handleError(e);
}
// ErrorHandler-Test7
try {
    throw "Goodbye again";
} catch(e) {
    ErrorHandler.handleError(e);
}
// ErrorHandler-Test8
try {
    throw {
    	myMessage: "stuff",
    	customProperty: 5,
    	anArray: [1, 2, 3]
    };
} catch(e) {
    ErrorHandler.handleError(e);
}

Eğer düşünüyorsanız herhangi bir test, lütfen onlara söz. Bu durumlarda çeşitli bir söz hakkında daha fazla bilgi.handleError yöntemi. Bu kullanarak try...catch zaman önerilen bir kılavuz.

CEVAP
15 EKİM 2008, ÇARŞAMBA


Eğer kullandığınız bir kütüphane gibi jQuery atama tüm olay işleyicileri, birlikte kullanabilirsiniz window.onerror ve kaydırma jQuery olay işleyicisi kod ve hazır fonksiyonu ile bir hata işleme işlevi (bkz: JavaScript Error Tracking: Why window.onerror Is Not Enough).

  • window.onerror: tüm hataları (ve Firefox en hataları YANİ, ama Safari ve Operada hiçbir şey yapmaz yakalar.
  • jQuery olay işleyicileri: jQuery olay tüm tarayıcılarda hatalarını yakalar.
  • jQuery ready fonksiyonu: yakalar tüm tarayıcılarda başlatma hataları.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • audivila

    audivila

    5 HAZİRAN 2009
  • PhoneArena

    PhoneArena

    7 NİSAN 2006
  • TheOtherMau5

    TheOtherMau5

    6 Mart 2012