javascript的错误处理
1 onerror事件,实例代码如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Demo2.aspx.cs" Inherits="WebApplication5.Demo2" %>
<script type="text/javascript">
function HandleError(sMessage,sURL,sLine) {
alert("出错了.\n"+"消息:"+sMessage+"\nURL:"+sURL+"\n出错行号:"+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 + "\n" + "error-message:" + this.message + "\n" + "error-type:" + this.name + "\n" + "error-func:" + funcname + "\n" + "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 id="form1" runat="server">
<div>
<input type="text" id="txtEmail" />
<input type="button" id="btnCalc" value="Calc" onclick="calc()" />
</div>
</form>
</body>
</html>
javascript的错误处理的更多相关文章
- JavaScript 的错误(Error)与异常(Exception)处理
PHP很少用到错误处理,因为框架帮了大忙,所以基本上没有主动接手过PHP的错误.PHP是偏后端的动态处理语言,和用户的关系不大,所以用户不会关心是否出现了报错.但是JavaScript就非常不同了,j ...
- Eclipse去除JavaScript验证错误
这篇文章主要是对Eclipse去除js(JavaScript)验证错误进行了介绍.在Eclipse中,js文件常常会报错.可以通过如下几个步骤解决 第一步: 去除eclipse的JS验证: 将wind ...
- 【转】Eclipse去除js(JavaScript)验证错误
这篇文章主要是对Eclipse去除js(JavaScript)验证错误进行了介绍.在Eclipse中,js文件常常会报错.可以通过如下几个步骤解决 第一步:去除eclipse的JS验证:将window ...
- kettle于javascript步骤错误处理
javascript步骤错误处理 假设你熟悉kettle误差特性转换.你可能想知道javascript步骤如何使用.骤用户界面机制是同样的,在javascript步骤右击,选择"定义错误处理 ...
- javascript常见错误
初学Javascript,每天总是被很小的问题折磨半天,今晚就有好几个小问题. 第一:全部使用双引号造成匹配错误 <input type="checkbox" onmouse ...
- JavaScript原生错误及检测
JavaScript代码在运行时可能产生的错误共有六种类型: 语法错误 类型错误 范围错误 eval错误 引用错误 URI错误 使用try-catch语句检测错误类型 try{ }catch(erro ...
- javascript中错误使用var造成undefined
在javascript中依据变量作用的范围不同分为局部变量和全局变量,直接定义的变量是全局变量,全局变量能够被全部的脚本訪问:在函数中定义的变量是局部变量,局部变量仅仅在函数内有效. 假设全局变量和局 ...
- JavaScript中错误正确处理方式,你用对了吗?
JavaScript的事件驱动范式增添了丰富的语言,也是让使用JavaScript编程变得更加多样化.如果将浏览器设想为JavaScript的事件驱动工具,那么当错误发生时,某个事件就会被抛出.理论上 ...
- 我所犯的JavaScript引用错误
近期在w3cschool学习JavaScript和php--学完后,开始帮一哥们友情写网站.但是在使用ajax和Jquery的时候发现,我自己写的脚本不能运行.捣鼓了半天,没有发现任何语句错误.调试器 ...
随机推荐
- 现代JavaScript开发者的工具箱
自从HTML5变得流行以来,整个Web平台取得了长足的进步,人们也开始将JavaScript视为一门能够创建复杂应用的语言.许多新的API纷纷浮现,而关于浏览器如何应用这些技术的文章也大量涌现. 作为 ...
- HTML5应用程序缓存Application Cache详解
什么是Application Cache HTML5引入了应用程序缓存技术,意味着web应用可进行缓存,并在没有网络的情况下使用,通过创建cache manifest文件,可以轻松的创建离线应用. A ...
- 在自己的对象里实现IEnumerator和IEnumerable
平时工作中我们经常用foreach来迭代一个集合.比如 foreach (Student student in myClass) { Console.WriteLine(student); } 基本所 ...
- Python 中的进程、线程、协程、同步、异步、回调
进程和线程究竟是什么东西?传统网络服务模型是如何工作的?协程和线程的关系和区别有哪些?IO过程在什么时间发生? 一.上下文切换技术 简述 在进一步之前,让我们先回顾一下各种上下文切换技术. 不过首先说 ...
- java面试欠缺知识点总结
针对最近面试被问到的问题,总结自己欠缺的知识点,并要在接下来的1年内加强这些知识: Java方面:反射.线程concurrent包: Spring方面:Ioc和Aop.事务: 持久化框架:设计并实现分 ...
- DB2 v9.1 RACF 瞎学笔记
一.DB2 RACF control module 定义在prefix.SDSNSAMP(DSNXRXAC)中,查找一下数据集 符合*.SDSNSAMP数据集有两个,我这里使用的DB V9,自然pre ...
- 理解 JS 回调函数中的 this
任何变量或对象都有其赖以生存的上下文.如果简单地将对象理解为一段代码,那么对象处在不同的上下文,这段代码也会执行出不同的结果. 例如,我们定义一个函数 getUrl 和一个对象 pseudoWindo ...
- 【解析 . PPT版】干货:阿里全息大数据构建与应用(包括:互联网金融、互联网+、精准营销...)
作者:毛波,阿里巴巴资深数据专家,阿里数据管理平台(DMP)产品负责人. 摘要: 回顾传统数据仓库.商业智能到大型分布式数据平台的进化历程,深入阐述阿里的数据发展历史和数据观,以阿里DMP平台为例深入 ...
- Asp.Net(C#)自动执行计划任务的程序实例分析
在业务复杂的应用程序中,有时候会要求一个或者多个任务在一定的时间或者一定的时间间隔内计划进行,比如定时备份或同步数据库,定时发送电子邮件等,我们称之为计划任务.实现计划任务的方法也有很多,可以采用SQ ...
- 使用 CSS3 打造一组质感细腻丝滑的按钮
CSS3 引入了众多供功能强大的新特性,让设计和开发人员能够轻松的创作出各种精美的界面效果.下面这些发出闪亮光泽的按钮,很漂亮吧?把鼠标悬停在按钮上,还有动感的光泽移动效果. 温馨提示:为保证最佳的效 ...