数码资讯
Javascript的错误处理
第一.错误分类 1。语法错误 也被称为解析错误,在传统的编程语言的编译器,在解释Javascript的发生,这些错误是由意外的字符代码直接造成的,并不能直接编译/解释,例如,在一行代码的丢失,语法错误。当发生语法错误,你不能继续执行代码。在Javascript,只有在同一个线程中的代码是由语法错误的
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
第一.错误分类
1。语法错误
也被称为解析错误,在传统的编程语言的编译器,在解释Javascript的发生,这些错误是由意外的字符代码直接造成的,并不能直接编译/解释,例如,在一行代码的丢失,语法错误。当发生语法错误,你不能继续执行代码。在Javascript,只有在同一个线程中的代码是由语法错误的影响。在其他线程和其他参考文件外部的代码可以继续执行,如果它不依赖于包含错误代码。
2。运行时错误
它也被称为例外(例外,编译期 /翻译后)。在这一点上,问题不在于代码的语法,而是试图完成一个操作,在某些情况下,是illegal.eg。
Window.openMyFile();
因为没有openmyfile()方法,浏览器会返回一个异常。异常仅影响所发生的线程和其他线程可以继续正常执行Javascript。
两。处理错误
1。onerror事件处理函数
它是辅助Javascript处理错误,第一个机制。当一个异常出现的页面上,错误事件在窗口object.eg触发。
复制代码代码如下所示:
错误的例子
不检测功能(){
警告(错误)!;
}
In the above code, an attempt is made to call a function that does not exist when the page is loaded, which will cause an exception at this point.An error message is popped out.However, the browser's error information is also shown, how to hide it on the browser, only the onerror method returns a true.
复制代码代码如下所示:
不检测功能(){
警惕(错误)!;
返回true;
}
1)去掉错误的信息。
的错误处理功能提供了三种信息来确定错误的确切性质:
i)错误信息-浏览器将显示给定错误的相同信息。
URL -哪个文件被错误地放在哪个文件中;
行号-给定URL中错误的行号。
访问方法如下示例所示:
复制代码代码如下所示:
不检测功能(smessage,surl,S){
警告(错误)!+ smessage + 网址:+ surl + 线数:+泥);
返回true;
}
2)图像加载误差
窗口对象不支持onerror事件处理函数的唯一对象,它提供了对图像对象的支持。错误的事件触发此图像时,图像没有成功如文件不存在原因负荷。让我们看一个例子:
这种分布直接在HTML OnError事件处理程序。当然,事件处理函数可以通过脚本分配。在设置图像的SRC特性之前,它必须等待页面被完全加载。代码如下:
复制代码代码如下所示:
图像误差试验
功能handleload(){
文档图像{ 0 }。误差=函数(){
在加载图片时发生错误!;
};
文档图像{ 0 };
}
注:对图像onerror事件任何附加信息的参数是不同的从窗口的OnError事件处理函数对象。
3)处理语法错误
误差也可以处理语法错误。然而,必须指出的是,这个事件处理函数必须是页面中的第一个代码,因为如果发生语法错误在设置事件处理程序,该事件处理程序的功能是没用的。
注意:一个语法错误将完全停止代码的执行。
说明:使用onerror事件处理函数的主要问题是,它是BOM的一部分,所以没有标准,能够控制自己的行为。因此,不同的浏览器使用该事件来处理错误的不同。Eg,当错误的事件发生在伊江,正常的代码将继续执行,所有的变量和数据被保留,并可以通过OnError事件处理程序访问。在Mozilla代码的正常执行结束,当所有的变量和数据之前已经摧毁了所有的错误。
2。尝试…catch语句
ecmpscript第三版,介绍了statement.eg try…catch。
复制代码代码如下所示:
{试
window.openfile1();
警报(成功调用的openfile1方法);
catch(异常){ }
警报()异常!;
{最后}
警报()尝试结束测试!;
}
不像java,ECMAscript标准是在尝试…只有一个catch语句中的catch语句,因为Javascript是弱类型语言,无法在指定的catch子句异常的特定类型。不管是什么类型的错误是,它是由相同的catch语句处理。但Mozilla扩展,可以添加一个catch语句,这是不推荐使用。
最后用于包含必须执行的代码,不管是否有例外,这对于关闭开放链接和释放资源非常有用。
1)嵌套尝试…catch语句
为了处理catch子句中的错误问题,我们来看一个例子。代码如下:
复制代码代码如下所示:
{试
eval(A + B);
} catch(oexception){
警告(错误)!;
{试
VaR误差=新的数组(1000000000000000000000000000000000000000);
} catch(异常){
警惕()catch子句中的错误!)
}
最后,{ }
警报(完成)
}
2)错误对象
当出现错误时,Javascript将抛出一个错误基类,它有两个特性:
i)名称——表示错误类型的字符串
消息-实际错误信息。
错误对象的名称对应于它的类,它可以是以下值之一:
EvalError:错误发生在eval()函数;
RangeError:这个数字值超出范围的Javascript可以表示。
referenceerror:非法引用使用;
SyntaxError:在eval出现语法错误()函数的调用,和其他成长错误是由浏览器的报道,无法通过try…catch处理;
TypeError:这个变量的类型是无法预料的。
URIError:在encodeURI或得到函数时发生了一个错误。
3)错误判断的类型
以下两种方法可用于确定错误类型。第一个基于异常的name属性,如下所示:
复制代码代码如下所示:
{试
eval(A + B);
} catch(oexception){
如果(oexception.name =查询){
警报(查询!;
{人}
警惕()其他错误!;
}
}
第二,instanceof运算符的使用,和代码如下:
复制代码代码如下所示:
{试
eval(A + B);
} catch(oexception){
如果(oexception instanceof SyntaxError){
警报(查询!;
{人}
警惕()其他错误!;
}
}
4)抛出异常的抛出语句
介绍了ECMAscript第三,用于抛出异常的目的。错误的对象可以是字符串、数字、布尔值或真实对象,也可以抛出错误对象。它的构造函数的功能只有一个,就是错误information.eg1。抛出新错误(错误生成!);
2。
复制代码代码如下所示:
功能addtwonumber(A,B){
如果(arguments.length<2){
抛出新错误()需要传递两个数字!;
}
}
{试
结果:(90)addtwonumber;
} catch(oexception){
如果(oexception instanceof SyntaxError){
警报(查询+ oexception。消息);
} else if(oexception是错误){
警报(oexception。消息);
}
}
以上是本文所描述的全部内容,希望合作伙伴能喜欢。
1。语法错误
也被称为解析错误,在传统的编程语言的编译器,在解释Javascript的发生,这些错误是由意外的字符代码直接造成的,并不能直接编译/解释,例如,在一行代码的丢失,语法错误。当发生语法错误,你不能继续执行代码。在Javascript,只有在同一个线程中的代码是由语法错误的影响。在其他线程和其他参考文件外部的代码可以继续执行,如果它不依赖于包含错误代码。
2。运行时错误
它也被称为例外(例外,编译期 /翻译后)。在这一点上,问题不在于代码的语法,而是试图完成一个操作,在某些情况下,是illegal.eg。
Window.openMyFile();
因为没有openmyfile()方法,浏览器会返回一个异常。异常仅影响所发生的线程和其他线程可以继续正常执行Javascript。
两。处理错误
1。onerror事件处理函数
它是辅助Javascript处理错误,第一个机制。当一个异常出现的页面上,错误事件在窗口object.eg触发。
复制代码代码如下所示:
错误的例子
不检测功能(){
警告(错误)!;
}
In the above code, an attempt is made to call a function that does not exist when the page is loaded, which will cause an exception at this point.An error message is popped out.However, the browser's error information is also shown, how to hide it on the browser, only the onerror method returns a true.
复制代码代码如下所示:
不检测功能(){
警惕(错误)!;
返回true;
}
1)去掉错误的信息。
的错误处理功能提供了三种信息来确定错误的确切性质:
i)错误信息-浏览器将显示给定错误的相同信息。
URL -哪个文件被错误地放在哪个文件中;
行号-给定URL中错误的行号。
访问方法如下示例所示:
复制代码代码如下所示:
不检测功能(smessage,surl,S){
警告(错误)!+ smessage + 网址:+ surl + 线数:+泥);
返回true;
}
2)图像加载误差
窗口对象不支持onerror事件处理函数的唯一对象,它提供了对图像对象的支持。错误的事件触发此图像时,图像没有成功如文件不存在原因负荷。让我们看一个例子:
这种分布直接在HTML OnError事件处理程序。当然,事件处理函数可以通过脚本分配。在设置图像的SRC特性之前,它必须等待页面被完全加载。代码如下:
复制代码代码如下所示:
图像误差试验
功能handleload(){
文档图像{ 0 }。误差=函数(){
在加载图片时发生错误!;
};
文档图像{ 0 };
}
注:对图像onerror事件任何附加信息的参数是不同的从窗口的OnError事件处理函数对象。
3)处理语法错误
误差也可以处理语法错误。然而,必须指出的是,这个事件处理函数必须是页面中的第一个代码,因为如果发生语法错误在设置事件处理程序,该事件处理程序的功能是没用的。
注意:一个语法错误将完全停止代码的执行。
说明:使用onerror事件处理函数的主要问题是,它是BOM的一部分,所以没有标准,能够控制自己的行为。因此,不同的浏览器使用该事件来处理错误的不同。Eg,当错误的事件发生在伊江,正常的代码将继续执行,所有的变量和数据被保留,并可以通过OnError事件处理程序访问。在Mozilla代码的正常执行结束,当所有的变量和数据之前已经摧毁了所有的错误。
2。尝试…catch语句
ecmpscript第三版,介绍了statement.eg try…catch。
复制代码代码如下所示:
{试
window.openfile1();
警报(成功调用的openfile1方法);
catch(异常){ }
警报()异常!;
{最后}
警报()尝试结束测试!;
}
不像java,ECMAscript标准是在尝试…只有一个catch语句中的catch语句,因为Javascript是弱类型语言,无法在指定的catch子句异常的特定类型。不管是什么类型的错误是,它是由相同的catch语句处理。但Mozilla扩展,可以添加一个catch语句,这是不推荐使用。
最后用于包含必须执行的代码,不管是否有例外,这对于关闭开放链接和释放资源非常有用。
1)嵌套尝试…catch语句
为了处理catch子句中的错误问题,我们来看一个例子。代码如下:
复制代码代码如下所示:
{试
eval(A + B);
} catch(oexception){
警告(错误)!;
{试
VaR误差=新的数组(1000000000000000000000000000000000000000);
} catch(异常){
警惕()catch子句中的错误!)
}
最后,{ }
警报(完成)
}
2)错误对象
当出现错误时,Javascript将抛出一个错误基类,它有两个特性:
i)名称——表示错误类型的字符串
消息-实际错误信息。
错误对象的名称对应于它的类,它可以是以下值之一:
EvalError:错误发生在eval()函数;
RangeError:这个数字值超出范围的Javascript可以表示。
referenceerror:非法引用使用;
SyntaxError:在eval出现语法错误()函数的调用,和其他成长错误是由浏览器的报道,无法通过try…catch处理;
TypeError:这个变量的类型是无法预料的。
URIError:在encodeURI或得到函数时发生了一个错误。
3)错误判断的类型
以下两种方法可用于确定错误类型。第一个基于异常的name属性,如下所示:
复制代码代码如下所示:
{试
eval(A + B);
} catch(oexception){
如果(oexception.name =查询){
警报(查询!;
{人}
警惕()其他错误!;
}
}
第二,instanceof运算符的使用,和代码如下:
复制代码代码如下所示:
{试
eval(A + B);
} catch(oexception){
如果(oexception instanceof SyntaxError){
警报(查询!;
{人}
警惕()其他错误!;
}
}
4)抛出异常的抛出语句
介绍了ECMAscript第三,用于抛出异常的目的。错误的对象可以是字符串、数字、布尔值或真实对象,也可以抛出错误对象。它的构造函数的功能只有一个,就是错误information.eg1。抛出新错误(错误生成!);
2。
复制代码代码如下所示:
功能addtwonumber(A,B){
如果(arguments.length<2){
抛出新错误()需要传递两个数字!;
}
}
{试
结果:(90)addtwonumber;
} catch(oexception){
如果(oexception instanceof SyntaxError){
警报(查询+ oexception。消息);
} else if(oexception是错误){
警报(oexception。消息);
}
}
以上是本文所描述的全部内容,希望合作伙伴能喜欢。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。