2012-05-14 54 views
0

我試着找出錯誤我在我的網頁上的javascrip函數得到的,所以我說try和catch JavaScript的意外標識符

function guardarMisDatos() throws Exception { 
try{ 
... 
} catch (Exception e){ 
alert("error: ", e); 
} 

但是當我打開網頁,鍍鉻web控制檯給我誤差在

function guardarMisDatos() throws Exception { 

和錯誤類型爲「未捕獲的SyntaxError:意外標識符」 哪裏是錯誤?它是一種正確的方式來檢查方式的功能不被觸發的第一次點擊?

回答

0

刪除「拋出異常」和抓參考「例外」。要知道什麼樣的例外是的,看e.name財產,這將是六一兩件事:

  • 的EvalError - 在eval()函數的錯誤已經發生。
  • RangeError - 發生範圍編號值的錯誤。
  • ReferenceError - 發生了非法引用。
  • SyntaxError - 發生eval()函數內部代碼中的語法錯誤。所有其他語法錯誤不會被try/catch/finally捕獲,並且會觸發與錯誤相關的默認瀏覽器錯誤消息。要捕捉實際的語法錯誤,您可以使用onerror事件。
  • TypeError - 發生預期變量類型的錯誤。
  • URIError - 編碼或解碼URI時發生錯誤(即:調用encodeURI()時)。

這些都不是常量,他們是實際的字符串,如if (e.name.toString()=="TypeError")有很多的錯誤對象上其他的好東西太多,更多的http://www.javascriptkit.com/javatutors/trycatch2.shtml

+0

這個答案是好的,但我仍然無法得到知道我收到的錯誤。我在這裏發佈了真正的問題,如果你想幫助我http://stackoverflow.com/questions/10531486/encodeuricomponent-fails-the-first-time-need-two-clicks-to-work – Stefano

5

JavaScript不是Java。失去throws Exception

+0

確定,但我怎麼能知道是什麼有那種錯誤嗎? – Stefano

+0

刪除你的catch括號中的'Exception'! – Amberlamps

+0

我仍然沒有得到錯誤,但是我知道這個功能沒有發射。看我在這裏發佈的問題http://stackoverflow.com/questions/10531486/encodeuricomponent-fails-the-first-time-need-two-clicks-to-work – Stefano

0

從你的函數定義中刪除throws Exception。你不需要這個JavaScript。除此之外,爲什麼你的函數會拋出一個異常 - 你已經知道了!

+0

好的,但我怎麼知道它有什麼樣的錯誤?我刪除了拋出異常,但現在我得到了同樣的錯誤,在結尾處有「catch {...}」 – Stefano

2

你的代碼看起來很像Java,而不是javaScript。 JavaScript中try/catch語句的語法是這樣的:

try { 
    // do stuff 
} catch (e) { 
    // something bad happened 
} 

公告不存在throwse無類型(因爲JavaScript是弱類型)

+0

我仍然沒有得到錯誤,但我知道該功能沒有解僱。看我在這裏發佈的問題http://stackoverflow.com/questions/10531486/encodeuricomponent-fails-the-first-time-need-two-clicks-to-work – Stefano