JavaScript的錯誤簡易處理
除錯JavaScript著實是一件令人頭痛的事情,但現在有很多工具讓除錯工作更方便和準確的發現錯誤資訊。好的錯誤處理技術可以讓指令碼的開發、除錯和部署更流暢。曾經,JavaScript總是因為會出現奇怪的令人困惑的錯誤訊息而知名,除錯這種資訊確實是一段難熬的經歷。以下是解決JavaScript錯誤的一些小方法:
try-catch
ECMA-262第3版引入了
try-catch
語句,基本的語法如下所示:try { } catch(error) { }
如果try塊中的任何程式碼發生錯誤,就會立即執行catch塊。此時,catch塊會接收到一個包含錯誤資訊的物件。即使不使用這個錯誤物件,也要起個名字,物件中包含的實際資訊因瀏覽器而異,但共同的是一個儲存錯誤訊息的message屬性,ECMA-262還規定了一個儲存錯誤型別的name屬性,所有瀏覽器都支援這個屬性(Opera 9之前的版本除外)。
finally
雖然在try-catch塊中是可選的,但finally子句一經用,無論如何都會執行,甚至return語句都不會阻止,例如:
function test() { try { return 1; } catch(error) { return 2; } finally { return 3; } }
錯誤型別
每種錯誤都有對應的錯誤型別,而當錯誤發生時,就會丟擲相應型別的錯誤物件,ECMA-262定義了7種錯誤型別:
1)
Error
: 基型別。
2)EvalError
: 使用eval()
函式發生異常時丟擲。
3)RangeError
: 數值超出相應範圍時丟擲。
4)ReferenceError
: 找不到物件時丟擲。
5)SyntaxError
: 使用eval()
函式中的字串有語法錯誤時丟擲。
6)TypeError
: 在變數中儲存意外型別或訪問不存在的方法時丟擲。
7)URIError
: 使用encodeURI
或decodeURI()
中URI格式不正確時丟擲。丟擲錯誤
與try-catch相配的還有一個throw操作符,用於丟擲自定義錯誤。丟擲錯誤時,必須給throw操作符指定一個值,這個值的型別沒有要求,例如:
throw 123; throw "Hello World!";
在遇到throw操作符時,程式碼會立即停止執行。
錯誤事件
沒有通過try-catch處理的錯誤都會觸發
window
物件的error
事件。任何瀏覽器中,onerror
事件處理程式都不會建立event
物件,但它可以接受3個引數:錯誤訊息、錯誤所在的URL和行號。只要發生錯誤,無論是不是瀏覽器生成的,都會觸發error
事件,並執行這個事件處理程式,如果在事件處理程式中返回false
,可以阻止瀏覽器報告錯誤的預設行為,例如:window.onerror = function(message, url, line) { alert(message); return false; }
影像也支援
error
事件,只要影像的src
屬性中的URL不能返回可以被識別的影像格式,就會觸發error
事件。
本文為Anyforweb技術分享部落格,需要了解網站建設相關,請訪問anyforweb.com。
相關文章
- javascript之處理Ajax錯誤JavaScript
- JavaScript 錯誤處理的最佳實踐JavaScript
- javascript中的錯誤處理機制JavaScript
- ASP.NET頁面錯誤處理及郵件傳送簡易方案ASP.NET
- Rust中錯誤處理的最簡單指南Rust
- 錯誤處理
- go的錯誤處理Go
- JavaScript學習(2):物件、集合以及錯誤處理JavaScript物件
- JavaScript 中遇到的錯誤問題,該怎麼處理?JavaScript
- PHP 錯誤處理PHP
- php錯誤處理PHP
- Go 錯誤處理Go
- Swift錯誤處理Swift
- Zabbix錯誤處理
- mysqldump錯誤處理MySql
- axios 的錯誤處理iOS
- COM的錯誤處理 (轉)
- 簡單介紹Python 處理錯誤的原則Python
- JavaScript 錯誤處理和堆疊追蹤淺析JavaScript
- 錯誤處理:如何通過 error、deferred、panic 等處理錯誤?Error
- PHP錯誤處理和異常處理PHP
- Python錯誤處理Python
- 請教 Element 的錯誤處理
- Restful API 中的錯誤處理RESTAPI
- 【譯】RxJava 中的錯誤處理RxJava
- grpc中的錯誤處理RPC
- 【故障處理】ORA-12162 錯誤的處理
- 前端的水平線,錯誤處理和除錯前端除錯
- oracle 字符集錯誤情況處理簡單方法Oracle
- 異常錯誤資訊處理
- PHP 核心特性 - 錯誤處理PHP
- 常用模組 PHP 錯誤處理PHP
- laravel9 錯誤處理Laravel
- 淺談前端錯誤處理前端
- Oracle異常錯誤處理Oracle
- ORACLE 異常錯誤處理Oracle
- 15-錯誤處理(Error)Error
- 學習Rust 錯誤處理Rust