2010-05-18 58 views
7

我試圖完成的是註冊一個全局處理程序來捕獲所有未捕獲的異常。 在網上搜索我只設法找到人指出window.onerror但這並沒有爲我做的伎倆。 顯然window.onerror只會在錯誤時調用,而不是在異常時調用。 假設下面的代碼:如何在沒有try/catch-block的情況下處理javascript中未捕獲的異常?

function windowError(message, url, line) { 
     alert(message, url, line); 
    } 
    window.onerror=windowError; 
    throw("uncaught"); 

的明顯未捕獲的異常不會觸發windowError處理程序。 (使用Firefox 3.6.3)

有什麼建議嗎?

+1

上面的代碼在chrome v12上效果很好。乾杯。 – 2011-06-09 12:45:51

回答

2

就我所知,你需要try/catch塊來實現這一點。這很重要,你需要知道什麼時候處理哪種錯誤。

+0

發現這篇文章時谷歌搜索如何捕捉unhandeled JavaScript異常。您無法預見在給定的代碼中會發生的所有類型的異常。 window.onerror是至少顯示錯誤的好方法。我走得更遠了,在我的網站上,我將window.onerror事件中的數據發佈到我的服務器上的webmethod,並將錯誤記錄到應用程序日誌中。 – Anders 2012-10-31 15:27:28

4

錯誤都陷入同樣的​​方式例外在javascript而事實上,在你的榜樣消息獲取的驚動(火狐3.6.3)。

+0

這很奇怪。它沒有得到Firefox 3.6.3的任何警報。 – Taloncor 2010-06-02 17:44:28

+0

我試過你的例子在一個簡單的HTML頁面,它確實工作。奇怪的是,在你的Firefox不是「提醒」...你有沒有嘗試過另一個瀏覽器? – 2010-06-02 18:16:11

相關問題