javascript捕获异常的方法有哪些
时间:2021-07-31 来源:互联网
今天PHP爱好者给大家带来javascript捕获异常的方法:1、使用try catch finally语句,语法“try{//调试代码块}catch(e) {//捕获处理异常}finally{//后期清理代码块}”;2、使用窗口对象window的onerror事件。希望对大家有所帮助。

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。
javascript捕获异常的方法
JavaScript的异常主要使用try catch finally语句以及窗口对象window的onerror事件来捕获。
try catch finally
try catch finally只能捕获运行时的错误,无法捕获语法错误,可以拿到出错的信息,堆栈,出错的文件、行号、列号。try catch finally语句标记要尝试的语句块,并指定一个出现异常时抛出的响应。
try{
// try_statements
throw new TypeError("Test");
}catch (e){
// catch_statements
console.log("catch_statements");
if(e instanceof TypeError){
// handle this expected error
console.log("handle this expected error");
}else{
// handle unexpected error
console.log("handle unexpected error");
}
}finally{
// finally_statements
console.log("finally_statements");
}
/*
注:
[catch (e if e instanceof TypeError) { // 非标准
catch_statements
}]
*/
通过Error的构造器可以创建一个错误对象,当运行时错误产生时,Error的实例对象会被抛出,Error对象也可用于用户自定义的异常的基础对象,Js内建了几种标准错误类型:
EvalError: 创建一个error实例,表示错误的原因:与eval()有关。RangeError: 创建一个error实例,表示错误的原因:数值变量或参数超出其有效范围。ReferenceError: 创建一个error实例,表示错误的原因:无效引用。SyntaxError: 创建一个error实例,表示错误的原因:eval()在解析代码的过程中发生的语法错误。TypeError: 创建一个error实例,表示错误的原因:变量或参数不属于有效类型。URIError: 创建一个error实例,表示错误的原因:给encodeURI()或decodeURl()传递的参数无效。
window.onerror
window.onerror可以捕捉语法错误,也可以捕捉运行时错误,可以拿到出错的信息,堆栈,出错的文件、行号、列号,只要在当前window执行的Js脚本出错都会捕捉到,通过window.onerror可以实现前端的错误监控。出于安全方面的考虑,当加载自不同域的脚本中发生语法错误时,语法错误的细节将不会报告。
/*
message:错误信息(字符串)。
source:发生错误的脚本URL(字符串)
lineno:发生错误的行号(数字)
colno:发生错误的列号(数字)
error:Error对象(对象)
若该函数返回true,则阻止执行默认事件处理函数。
*/
window.onerror = function(message, source, lineno, colno, error) {
// onerror_statements
}
/*
ErrorEvent类型的event包含有关事件和错误的所有信息。
*/
window.addEventListener('error', function(event) {
// onerror_statements
})
以上就是javascript捕获异常的方法有哪些的详细内容,更多请关注php爱好者其它相关文章!
-
163免费邮箱快速入口-163免费邮箱一键登录入口 2025-12-20 -
想知道欧拉的梗是什么梗吗?揭秘数学大神的有趣冷知识,快来涨姿势! 2025-12-20 -
币安收不到验证码?试试语音验证码等替代方法 2025-12-20 -
微博网页版登录入口-微博PC端快速登录入口 2025-12-20 -
魔兽世界大脚人口普查数据在哪查-大脚人口普查官网最新查看入口分享 2025-12-20 -
币安提现被拒如何维权 用户申诉渠道与解决指南 2025-12-20