Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 1069|回复: 0

JavaScript 的错误(Error)与异常(Exception)处理

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-7-11 00:50:57 | 显示全部楼层 |阅读模式

    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 用处不大,可能是因为出现较为早的原因吧,已经有了更好的处理方法替代。

     

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-2-1 04:00 , Processed in 0.060292 second(s), 30 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表