通常狀況下,咱們不多用到 try...catch 語句,可是有時候爲了測試代碼中的錯誤,也有可能會用到。小白我也在工做中用到過。那麼好的程序設計,何時會用到呢?
程序員
try...catch 通常用來捕獲宿主對象或者ECMAScript拋出的異常。編碼
1 try{ 2 // 此處運次代碼 3 } catch(err) { 4 // 此到處理代碼 5 }
【注意】該語句嚴格區分大小寫,使用大寫字母會出錯。spa
而且,try...catch...finally 爲JS 實現錯誤處理:設計
try { tryStatements // 必選項,可能發生錯誤的語句 } catch(exception) { // exception 可選項,任何變量名,exception的初始化值是扔出的錯誤的值 catchStatements //可選項,處理在相關聯的 tryStatement 中發生的錯誤的語句 } finally { finallyStatements // 可選項,在全部其餘過程發生以後無條件執行的語句 }
try...catch...finally 語句提供了一種方法來處理可能發生在給定代碼塊中的某些或所有錯誤,同時仍保持代碼的運行。若是發生了程序員沒有處理的錯誤,JS 只給用戶提供它的普通錯誤消息,就好象沒有錯誤處理同樣。code
tryStatements 參數包含可能發生錯誤的代碼,而 catchStatement 則包含處理任何發生了的錯誤的代碼。若是在 tryStatements 中發生了一個錯誤,則程序控制被傳給 catchStatements 來處理。exception 的初始化值是發生在 tryStatements 中的錯誤的值。若是錯誤不發生,則不執行 catchStatements。對象
若是在與發生錯誤的 tryStatements 相關聯的 catchStatements 中不能處理該錯誤,則使用 throw 語句來傳播、或從新扔出這個錯誤給更高級的錯誤處理程序。blog
在執行完 tryStatements 中的語句,並在 catchStatements 的全部錯誤處理髮生以後,可無條件執行 finallyStatements 中的語句。ip
請注意,即便在 try 或 catch 塊中返回一個語句,或在 catch 塊從新扔出一個錯誤,仍然會執行 finallyStatements 編碼。 通常將確保 finallyStatments 的運行,除非存在未處理的錯誤。(例如,在 catch 塊中發生運行時錯誤)。io