2013-04-22 33 views
14

看來Error和Exception是相同的東西,它們都可以通過'throw'語句拋出,並被'try-catch'塊捕獲。Javascript中的錯誤和異常有什麼區別

+0

有一點Google搜索是永遠不會錯的,http://java67.blogspot.nl/2012/12/difference-between-error-vs-exception.html – notknown7777 2013-04-22 08:31:36

+0

「」例外「是指錯誤(運行時),可以被困和控制,而不是「錯誤」,這只是糟糕的語法,並徹底打破了編譯器......「 - https://forums.digitalpoint.com/threads/difference-between-error-exception.1324844/ – notknown7777 2013-04-22 08:36:12

回答

14

JavaScript語法

錯誤和異常的語法在JavaScript的代名詞。該語言僅實現Error關鍵字,通過window.Error。您可以使用Error.constructor定義自定義錯誤,其中namemessage作爲參數。

JavaScript錯誤

還存在可用於跟蹤碼內的錯誤發生的行號的糖。 JavaScript只有Error。無論你聽到人們在談論Exceptions還是Errors,在JavaScript中它們都指向相同的東西。

瀏覽器進行區分:ReferenceError(訪問變量與不堆中存在,或者當你犯了一個錯字(更here),TypeError也是已知JS錯誤,更here姓名時。

JavaScript異常

已知的JavaScript Exception A是DOM Exception 8。當您訪問的對象,則沒有準備好,如XMLHttpRequest尚未完成該請求時發生。

實施

當使用try catchtry catch finally塊,你會同時面對的JavaScript ExceptionError。代碼方面的差異沒有影響。

在幕後,瀏覽器使用相同的window.ErrorconstructorExceptionError實例,其中namemessage包含「例外」。

嘗試:var myCustomError = new Error("myException", "An exception occurred.");。 「例外」是字符串中的文本。更多關於Errorhere

公約

按照慣例,有ErrorException之間的差異。 Error表示明顯的違規行爲。 A TypeErrorRefferenceError表示您沒有遵循語言規範。

當您在完成之前訪問XMLHttpRequest響應時,會引發一個ExceptionError是一個「你打破了法律」喊,Exception是一個「幾乎在那裏!」墊在肩上。希望類比有所幫助。

0

我認爲一個錯誤是嚴重的,你不應該試圖趕上 一個異常是應該被捕獲的,只要它可以處理它。

錯誤是指代碼中出現錯誤或無效的情況。它可能導致內存錯誤,這是不應該發生,不能被處理的事情。

雖然在代碼中遇到某些條件時會拋出異常。它可能不符合實際的錯誤。

3

基於lecture,JavaScript引擎引發錯誤,開發人員拋出異常。它只是命名約定。

  • 的JavaScript拋出錯誤
  • 開發商拋出異常

在技術方面是相同的結構(事)。

相關問題