PHP很少用到错误处理,因为框架帮了大忙,所以基本上没有主动接手过PHP的错误。PHP是偏后端的动态处理语言,和用户的关系不大,所以用户不会关心是否出现了报错。但是JavaScript就非常不同了,js的错误非常明显,稍微优点网络基础的人,都会迅速打开F12查看错误,最近再做一个需要大量js的项目,大量原生js,jq框架以及其他的插件混合再一起,所以难免会出现一些莫名其妙的问题。有时候看看满满的红色报错,就会想会有哪个用户会打开看到呢?经过查找资料(犀牛书)终于找到了JavaScript错误处理的机制,以即解决方案。


一、JavaScript错误(Error)与异常(Exception)的区别。

这里仔细区分Error与Exception的区别。在网上查找资料,找到的大部分都是Java方面的资料,对照JS起始也可以得出js的错误与异常。

Error(错误)表示系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题,比如,内存资源不足等,对于这种错误,程序基本无能为力,除了退出运行外别无选择。 Exception(违例)表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计的瑕疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。

一言以蔽之:Error是代码在编译的时候就出现了错误,代码无法编译,比如语法错误,必须修正错误后才能重新编译。代码无法跳过错误。

Exception是代码再运行的时候,出现了错误,比如对象中某个属性不存在,或者是数据类型不对。代码可以继续执行,不过会在控制台中输出一段错误,提醒程序员。

那我们所讲的错误处理,基本上指的是第二种Exception的情况,用try catch 或者onerror来进行捕获。

二、 JavaScript错误是怎么输出到控制台的    ——    JavaScript的错误处理原理。

当抛出异常时,JavaScript解释器会立即停下当前正在执行的逻辑,并且跳到最近的异常处理程序(可以参考冒泡与变量作用域的相关概念。一句话简单理解:儿子犯了错误,找老子,一层一层往上找,直到找到能够承担错误的对象为止)。如果在所有的词法结构和调用栈上面没有找到错误处理程序。JavaScript就会把异常当做程序错误处理,并报告给用户。

三、使用  try catch  finally 处理程序

语法如下

try{
//这里放置可能会出错的代码
}
catch(e)
{
//代码出错后执行这里。
}
finally
{
//不管代码是否报错,都将执行这里。
}

三 、使用 window.onerror

window.onerror    =   dieError;
function dieError(msg,url,line){
var txt = "ERROR: "+msg+"\n";
txt += "URL: "+url+"\n";
txt += "LINE: "+line+"\n";
alert(txt);
return true;
}

个人感觉这个Window.onerror 用处不大,可能是因为出现较为早的原因吧,已经有了更好的处理方法替代。

JavaScript 的错误(Error)与异常(Exception)处理的更多相关文章

  1. java:错误Error,异常Excepition

    java中throw异常后代码还会继续执行吗 今天遇到一个问题,在下面的代码中,当抛出运行时异常后,后面的代码还会执行吗,是否需要在异常后面加上return语句呢? public void add(i ...

  2. Unity出现 error building player exception android (invocation failed)

    今天在编译Android的时候出现这个错误 error building player exception android (invocation failed) 百度谷歌之后,看到xuanyuson ...

  3. Python 3.3 try catch所有的错误Error,不包括Exception。关键在于 sys.exc_info()

    import os; import sys; #---------------------------------------------- def main( ) : try : a = 1 / 0 ...

  4. 异常 - 虚拟机初始化错误 - Error occurred during initialization of VM

    目录 1 环境配置信息 1.1 服务器配置信息 1.2 Tomcat启动参数 2 问题描述 3 问题解决 4 关于vm.overcommit_memory参数 4.1 vm.overcommit_me ...

  5. Atititjs javascript异常处理机制与java异常的转换.js exception process

    Atititjs javascript异常处理机制与java异常的转换.js exception process 1. javascript异常处理机制 Throw str Not throw err ...

  6. Atitit.js javascript异常处理机制与java异常的转换 多重catc hDWR 环境 .js exception process Vob7

    Atitit.js javascript异常处理机制与java异常的转换 多重catc hDWR 环境 .js exception processVob7 1. 1. javascript异常处理机制 ...

  7. Atitit.js javascript异常处理机制与java异常的转换.js exception process Voae

    Atitit.js javascript异常处理机制与java异常的转换.js exception processVoae 1. 1. javascript异常处理机制 1 2. 2. Web前后台异 ...

  8. Kafka中错误:Unrecognized VM option ‘UseCompressedOops’ Error: Clould not create the Java Vritual Machine. Error: A fatal exception has occurres . Program will exit.

    错误的描述: 在kafka安装目录下,执行 $ bin/zookeeper-server-start.sh config/zookeeper.properties & Unrecognized ...

  9. 【异常】Maxwell异常 Exception in thread "main" net.sf.jsqlparser.parser.TokenMgrError: Lexical error at line 1, column 596. Encountered: <EOF> after : ""

    1 详细异常 Exception in thread "main" net.sf.jsqlparser.parser.TokenMgrError: Lexical error at ...

随机推荐

  1. 仿各种APP将文章DOM转JSON并在APP中以列表显示(android、ios、php已开源)

    背景 一直以来都想实现类似新闻客户端.鲜城等文章型app的正文显示,即在web editor下编辑后存为json,在app中解析json并显示正文. 网上搜过,没找到轮子.都是给的思路,然后告知是公司 ...

  2. Windows8.1画热度图 - 坑

    想要的效果 如上是silverlight版本.原理是设定一个调色板,为256的渐变色(存在一个png文件中,宽度为256,高度为1),然后针对要处理的距离矩阵图形,取图片中每个像素的Alpha值作为索 ...

  3. C++ redirect input

    #include<iostream> #include<string> #include<fstream> using namespace std; int mai ...

  4. linux基础-第十四单元 Linux网络原理及基础设置

    第十四单元 Linux网络原理及基础设置 三种网卡模式图 使用ifconfig命令来维护网络 ifconfig命令的功能 ifconfig命令的用法举例 使用ifup和ifdown命令启动和停止网卡 ...

  5. linux 配置 crontab

    linux中的crontab是定时用的,下面的cron服务就是定时器的意思 crontab -l 列举所有的cron服务 crontab -e 修改cron服务 crontab -r 删除cron服务 ...

  6. extJs学习基础4 Ext.each的用法

    Ext.onReady(function(){ //案例一 /* var countries = ['Vietnam', 'Singapore', 'United States', 'Russia'] ...

  7. HV和VM 内存性能测试对比结果

    安装工具: apt-get install mbw 使用 mbw 1024 测试 VM ubuntu12.04 : ldd --versionldd (Ubuntu EGLIBC 2.15-0ubun ...

  8. 【BZOJ 2118】墨墨的等式

    http://www.lydsy.com/JudgeOnline/problem.php?id=2118 最短路就是为了找到最小的$x$满足$x=k×a_{min}+d,0≤d<a_{min}$ ...

  9. 【CodeVS 3123】高精度练习之超大整数乘法 &【BZOJ 2197】FFT快速傅立叶

    第一次写法法塔,,,感到威力无穷啊 看了一上午算导就当我看懂了?PS:要是机房里能有个清净的看书环境就好了 FFT主要是用了巧妙的复数单位根,复数单位根在复平面上的对称性使得快速傅立叶变换的时间复杂度 ...

  10. EPUB书籍阅读器插件分享

    本文主要分享EPUB文件的打开方式, 包括如何使用火狐浏览器打开epub, 如何使用chrome打开epub, 如何使用IE浏览器打开epub文件: 1:使用火狐打开epub文件 如果有安装火狐浏览器 ...