2010-06-04 93 views
5

try ... catch(e)在VB中提供與On Error Resume Next相同的服務嗎?錯誤在Javascript中繼續下一個?

我有一個頁面,它使用了幾個JQuery插件以及我自己編寫的一些函數。解決所有可能的例外情況需要很多工作。

現在,我想告訴腳本不要突破將是致命的錯誤。我在使用插件時如何做到這一點?

+1

一個例外是特殊的,你怎麼能繼續運行腳本,如果一切都搞砸了? :) – 2010-06-04 22:54:52

+2

不是所有東西都搞砸了。相反,只有10%左右;) – 2010-06-04 22:59:16

+0

@ user216441,排序後的混亂。 – Pacerier 2018-02-20 15:55:22

回答

6

是的,try/catch提供了一種捕獲錯誤的方法,但與「錯誤恢復」不同,您選擇處理catch塊中的錯誤或根本不處理錯誤。

所以在VB中,你可能會做的:

on error resume next 
DoSomethingUnsavory 
if err.number <> 0 then ... 
on error goto 0 ' you DO do this, right? 

在JS你做到以下幾點:

try { 
    doSomethingUnsavory(); 
} 
catch (e) { 
    // handle the unsavoriness if needed 
} 

當然空的catch塊都是邪惡的,所以不要讓他們在生產代碼yadda yadda。最好的事情是讓錯誤發生並解決它們。快速失敗!

+0

謝謝。我正在處理的錯誤是由嵌套窗體上的驗證插件引起的。我意識到這一點,並試圖修復。但是其他功能因此而癱瘓(僅在某些瀏覽器上)。我現在想要一個快速的磁帶修復,直到我找到一種方法來防止錯誤發生。 – 2010-06-04 23:28:57

+3

這是不正確的,我知道這個線程是非常古老的,但這個信息是誤導性的,在錯誤恢復下一個忽略錯誤,並繼續下一句話,嘗試/ catch從try體內退出,並在拋出錯誤時進入catch。 – Gusman 2014-11-07 08:50:42

3

據我所知,沒有ON錯誤RESUME NEXT在JavaScript,但下面的模型將解決您的要求

try 
{ 
    var providerRateAvg = data.entry.gd$rating.average; 
} 
catch(e) 
{}