资讯专栏INFORMATION COLUMN

JavaScript学习笔记第五天_错误处理与

levy9527 / 463人阅读

摘要:廖雪峰老师的教程学习笔记错误处理提供了像一样的错误处理机制,即例如其中不是必须的,也不是必须的,但二者必须有其一,其中是必定会被执行的。其中其中函数将在超时后执行。

廖雪峰老师的javascript教程学习笔记

1. 错误处理

JavaScript 提供了像Java一样的错误处理机制,即try catch finally.
例如:

try{
    var s = null;
    s.length; // TypeError: Cannot read property "lenght" of null
}catch(err){
    console.log("null pointer" + err);
}finally{
    // clear resource.
}

其中catch不是必须的,finally也不是必须的,但二者必须有其一,其中finally是必定会被执行的。

错误类型,TypeError继承于Error,还有ReferenceError等错误处理对象,可以通过捕获到的e,通过instance判断出的具体的Error类型。

它还允许抛出异常,关键字throw,像java一样。

var n = "ss";
if(isNaN(n)){
    throw new Error("input error");
}

实际上,JavaScript允许抛出任意对象,包括数字、字符串。但是,最好还是抛出一个Error对象。

2. 错误传播

向上一层传递,就像Java的Exception一样,Java会把整个调用栈都会打出来,JS也同样。

3. 异步错误处理

JavaScript引擎是一个事件驱动的执行引擎,代码总是以单线程执行,而回调函数的执行需要等到下一个满足条件的事件出现后,才会被执行。

function printTime() {
    throw new Error();
}

try {
    setTimeout(printTime, 1000);
    console.log("done");
} catch (e) {
    alert("error");
}

其中window.setTimeout(func, delay, pars...)其中func函数将在超时后执行。由于是异步,所以setTimeout会立即执行完成,并执行下一句打印log,然后等到超时后,被触发执行,然后throw error,而这时并不会被catch。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/86511.html

相关文章

  • JavaScript学习五天笔记(作用域)

    摘要:函数的作用域也可被分为全局作用域和局部作用域函数作用域被定义在指定函数内部的函数被称为局部函数或内部函数。局部变量在函数内部声明的变量被成为局部变量,它只能在函数的内部进行访问。 作用域 概述 变量和函数都具有作用域 作用域就是变量和函数的可被访问的范围 控制着变量和函数的可见性和生命周期。变量的作用域可被分为全局作用域和局部作用域(函数作用域) 如果变量是被定义在全局作用域的话 在J...

    Sleepy 评论0 收藏0
  • JavaScript学习五天笔记(函数)

    摘要:实参函数调用时实际传入的参数是函数的实际参数,简称实参。简单来说,就是调用函数时使用的参数就是实参。函数用于执行以字符串形式出现的代码。创建的一个的源代码的字符串表示。对已编码的统一资源标识符进行解码,并返回其非编码形式。 函数 概述 函数是这样一段JavaScript代码,它只定义一次,但是可能被执行或调用多次。简单来说,函数就是一组可重复使用的代码。 定义函数 定义函数有两种方式...

    Code4App 评论0 收藏0
  • 26天学通前端开发(配资料)

    摘要:网上有很多前端的学习路径文章,大多是知识点罗列为主或是资料的汇总,数据量让新人望而却步。天了解一个前端框架。也可以关注微信公众号晓舟报告,发送获取资料,就能收到下载密码,网盘地址在最下方,获取教程和案例的资料。 前言 好的学习方法可以事半功倍,好的学习路径可以指明前进方向。这篇文章不仅要写学习路径,还要写学习方法,还要发资料,干货满满,准备接招。 网上有很多前端的学习路径文章,大多是知...

    blair 评论0 收藏0
  • HTML

    摘要:目前,中关村黑马程序员训练营已成长为行业学员质量好课程内容深企业满意的移动开发高端训练基地,并被评为中关村软件园重点扶持人才企业。黑马程序员的学员筛选制度,远比现在以上的企业招聘流程更为严格。系统的学习可以参考w3c的教程 web概念概述 * JavaWeb: * 使用Java语言开发基于互联网的项目 * 软件架构: 1. C/S: Client/Server 客户端/服务...

    Snailclimb 评论0 收藏0
  • 五天 JavaScript单线程详解

    摘要:若以多线程的方式操作这些,则可能出现操作的冲突。另外,因为是单线程的,在某一时刻内只能执行特定的一个任务,并且会阻塞其它任务执行。浏览器事件触发线程事件触发线程,当一个事件被触发时该线程会把事件添加到任务队列的队尾,等待引擎的处理。 首先,说下为什么 JavaScript 是单线程? 总所周知,JavaScript是以单线程的方式运行的。说到线程就自然联想到进程。那它们有什么联系呢? ...

    caiyongji 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<