JS高程3:错误处理和调试

浏览器打开控制台的快捷键

Ctrl+shift+I

try-catch语句

语法

try{
    // 可能会导致错误的代码
} catch(error){
    // 在错误发生时怎么处理
}

可以自定义错误信息

try {
	window.someNonexistentFunction();
} catch (error){
	alert("An error happened!");
}

 或者使用默认的错误信息,catch块会接收一个error对象,该对象有message属性和name属性,分别表示

message:错误信息

name:错误类型

try {
	window.someNonexistentFunction();
} catch (error){
	alert("An error happened!");
	alert(error.message); //window.someNonexistentFunction is not a function
	alert(error.name); //TypeError
}

 finally子句

只要有finally子句存在,那么try和catch子句都会被忽略。(哪怕没有catch子句)

function testFinally(){
try {
	return 2;
} catch (error){
	return 1;
} finally {
	return 0;
}
} //最后返回0

 错误类型

ECMA-262 定义了下列 7 种错误类型:

 Error
 EvalError
 RangeError
 ReferenceError
 SyntaxError
 TypeError
 URIError

在找不到对象的情况下,会发生 ReferenceError(这种情况下,会直接导致人所共知的"object
expected"浏览器错误)

TypeError 类型在 JavaScript 中会经常用到,在变量中保存着意外的类型时,或者在访问不存在的
方法时,都会导致这种错误。

使用console对象将错误信息输出到控制台。

console.log(...);

下面是几种避免浏览器响应 JavaScript 错误的方法。

 在可能发生错误的地方使用 try-catch 语句,这样你还有机会以适当的方式对错误给出响应,
而不必沿用浏览器处理错误的机制。
 使用 window.onerror 事件处理程序,这种方式可以接受 try-catch 不能处理的所有错误(仅
限于 IE、 Firefox 和 Chrome)。
另外,对任何 Web 应用程序都应该分析可能的错误来源,并制定处理错误的方案。
 首先,必须要明确什么是致命错误,什么是非致命错误。
 其次,再分析代码,以判断最可能发生的错误。 JavaScript 中发生错误的主要原因如下。
     类型转换
     未充分检测数据类型
     发送给服务器或从服务器接收到的数据有错误
原文地址:https://www.cnblogs.com/leomei91/p/7552625.html