javascript的错误处理

摘要:
1onerror事件,实例代码如下:functionHandleError(sMessage,sURL,sLine){alert("出错

1 onerror事件,实例代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo2.aspx.cs" Inherits="WebApplication5.Demo2" %>

<script type="text/javascript">
function HandleError(sMessage,sURL,sLine) {
alert("出错了. "+"消息:"+sMessage+" URL:"+sURL+" 出错行号:"+sLine);
return true;
}
window.onerror = HandleError;

</script>
<body onload="HandleLoad()"></body>

2 try ... catch... finally ,实例代码如下:

<script type="text/javascript">
try
{
//alert("ok");
windows.open("about:blank");
}
catch (exception) {
alert("an error processed");
}
finally {
alert("finally");
}

alert("ok");
</script>

注意:与JAVA/C#语言不同的是,不支持多重catch语句,但支持嵌套catch语句

实例代码如下:

<script type="text/javascript">
try
{
var a = document.getElementById("txtUser");
alert(a.value);
}
catch (ex) {
try
{
alert(ex.message);
}
catch (ex) {
alert(ex.message);
}
}
</script>

错误类型判断

方法1.通过name属性判断;

方法2:通过instanceof操作符

实例代码如下:

<script type="text/javascript">
try
{
var scriptStr="var a=0;var b=1;var c=a++b;alert(c)";
eval(scriptStr);
}
catch (ex) {
if (ex instanceof SyntaxError) {
alert("语法出错了");
}
}
</script>

抛出异常

ECMAScript还引入throw语句,用于抛出异常,语法如下:

throw error_object,

error_object可以是字符串,数字,布尔值或是实际的对象,如

throw "an error occurred";

throw 5009

throw true;

throw new Object();

throw new Error();

throw new Error("error");

throw new Error(10001,"error");

自定义异常:实例代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="js自定义异常.aspx.cs" Inherits="WebApplication5.js自定义异常" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
var EmailError = new Error(1001, "Email格式非法");
EmailError.name = "EmailFormatError";
EmailError.writeLog = function (funcname) {
var logstr = "error-code:" + this.number + " " + "error-message:" + this.message + " " + "error-type:" + this.name + " " + "error-func:" + funcname + " " + "error-time:" + (new Date()).toString();
alert(logstr);
}

function calc() {
var obj = document.getElementById("txtEmail");
try{
if(obj.value.indexOf("@")==-1)
{
throw EmailError;
}
else
{
alert("验证通过");
}
}
catch (ex) {
ex.writeLog("calc");
}

}
</script>
</head>
<body>
<form runat="server">
<div>
<input type="text" />
<input type="button" value="Calc" onclick="calc()" />
</div>
</form>
</body>
</html>

免责声明:文章转载自《javascript的错误处理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇将文件以流的形式另存为下载go函数下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

用jedis执行lua脚本

1.Redis 脚本 Redis 脚本使用 Lua 解释器来执行脚本。 Redis 2.6 版本通过内嵌支持 Lua 环境。执行脚本的常用命令为EVAL。 下表列出了 redis 脚本常用命令: 序号 命令及描述 1 EVAL script numkeys key [key ...] arg [arg ...]执行 Lua 脚本。 2 EVAL...

AJAX全套

概述  对于WEB应用程序:用户浏览器发送请求,服务器接收并处理请求,然后返回结果,往往返回就是字符串(HTML),浏览器将字符串(HTML)渲染并显示浏览器上。 AJAX类似于偷偷像后台发送数据。 1、传统的Web应用 一个简单操作需要重新加载全局数据 2、AJAX AJAX,Asynchronous JavaScript and XML (异步的Ja...

jquery.validate.js的Validate表单验证

原文连接 https://blog.csdn.net/weixin_42765270/article/details/84591593 validate 一、 validate的使用步骤 引入jquery.min.js 引入 jquery.validate.js 页面加载后对表单进行验证 $("#表单id名").validate({}) 在valid...

很好的 DHCP协议与dhcpcd分析【转】

本文转载自:http://blog.csdn.net/gjsisi/article/details/18052369 第一部分 DHCP工作过程 DHCP的工作过程主要分为以下六个阶段:     发现阶段,即DHCP客户端寻找DHCP服务器的阶段。DHCP客户端首先以广播方式发送DHCP DISCOVER发现信息来寻找DHCP服务器(因为DHCP服务器的I...

( 三十一 )、 SpringBoot项目启动自动执行sql脚本

( 三十一 )、 SpringBoot项目启动自动执行sql脚本 方式一:在配置文件中配置相关属性 1、关键属性: 1、spring.datasource.schema: 表初始化语句,默认加载schema.sql,看getScripts源码,它还会加载schema-${platform}.sql文件,其中platform就是spring.datasou...

Chart.js实现饼图

页面: 引入静态脚本: <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>   <script src="https://code.highcharts.com/highcharts.js"></script&g...