Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >21错误与异常

21错误与异常

作者头像
Dreamy.TZK
发布于 2020-06-06 08:36:50
发布于 2020-06-06 08:36:50
1.2K00
代码可运行
举报
文章被收录于专栏:小康的自留地小康的自留地
运行总次数:0
代码可运行

错误与异常是什么

错误,指程序中的非正常运行状态,在其它编程语言中称为“异常”或“错误”。解释器会为每个错误情形创建并抛出一个Error对象,其中包含错误的描述信息。

通过使用Javascript提供的异常处理语句,可以用结构化的方式来捕捉发生的错误,让异常处理代码与核心业务代码实现分离。

错误与异常处理在应用中的重要性是毋庸置疑的。任何有影响力的Web应用都需要一套完善的错误处理机制。

try…catch语句

try表示标记一块待尝试的语句,如果语句出现错误,则通过catch语句进行捕捉。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 用于捕获指定语句块中的错误或异常
try {
  console.log(v); //调用未定义的变量 -> 报错
} catch (error) {
  // 用于处理try语句中的错误
  // error 表示try语句中出现错误的信息
  console.log("改变量未定义");
} finally {
  // catch语句无法处理try语句中的错误或异常时,执行finally语句中的内容
  console.log("");
}

finally表示最后执行,无论是走try还是catch都会执行finally语句。

throw语句

人为抛出错误或异常,语法结构throw 异常或错误的表达式。其表达式允许是任意类型的内容。作用为预判断当前使用的变量、函数或对象是否存在。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function fn(v) {
    if (v) {
        return v;
    } else {
        /**
     * throw 语句 - 人为抛出错误或异常
     * 语法结构
     *   - throw 异常或错误的表达式
     *   表达式允许是任意类型的内容
     * 作用 - 预判断当前使用的变量、函数或对象是否存在
     */
        // 真是情况下应抛出一个错误对象
        throw "undefined";
    }
}
// console.log(fn(10));
// console.log(fn());

var result;
try {
    result = fn();
} catch (e) {
    result = "unkown";
    console.log(e); // undefined
}

console.log(result); // unkown

嵌套try…catch语句

可以嵌套一个或多个try…catch语句。如果一个内部的try…catch语句没有捕捉块,将会启动匹配外部的try…catch语句的捕捉块。

注意:嵌套在catch语句块内。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
try {
    console.log(0);
} catch (e) {
    try {
        console.log(1);
    } catch (e) {
        console.log(2);
    }
}

错误类型

基本错误类型

执行代码期间可能会发生的错误有多种类型,每种错误都有对应的错误类型。当错误发生时,就会抛出对应类型的错误对象。

Error是基本错误类型,其他错误类型都继承自该类型。Error类型的错误很少见,如果有也是浏览器抛出的。这个基本错误类型的主要目的是提供给开发人员抛出自定义错误的。

预定义错误类型

错误类型

说明

EvaError

表示错误的原因:与eval()有关。

internalError

表示JavaScript引擎内部错误的异常。

RangeError

表示错误的原因:数值变量或参数超出其有效范围。

ReferenceError

表示错误的原因:无效引用。

SyntaxError

表示错误的原因:eval()在解析代码的过程中发生的语法错误。

TypeError

表示错误的原因:变量或参数不属于有效类型。

URIError

表示错误的原因:给encodeURI()或decodeURI()传递的参数无效。

JavaScript 错误参考

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
JavaScript中的错误处理机制
在写代码的时候,避免不了遇到各种各样的错误,遇到错误,BUG,我们需要尽快的解决,才能不拖累工作的进度,我们一般都会百度错误如何解决,但是遇到一些针对性错误以及百度方法不管用的情况下,就需要了解错误处理机制了。
刘亦枫
2020/03/19
2.4K0
JS 常见报错及异常处理办法总结
在开发中,有时,我们花了几个小时写的js 代码,在浏览器调试一看,控制台一堆红……瞬间一万头草泥马奔腾而来。
winty
2021/01/05
10.7K0
JS 常见报错及异常处理办法总结
JS常见的报错及异常捕获
在开发中,有时,我们花了几个小时写的Js 代码,在游览器调试一看,控制台一堆红,瞬间一万头草泥马奔腾而来。
@超人
2021/08/24
7.5K0
每天3分钟,重学ES6-ES12(十六)错误异常处理方案
持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第28天,点击查看活动详情
虎妞先生
2022/09/19
3780
JS的控制流程
通过var声明的变量没有块级作用域。在语句块里声明的变量作用域是其所在的函数或者 script 标签内,你可以在语句块外面访问到它。换句话说,语句块 不会生成一个新的作用域。尽管单独的语句块是合法的语句,但在JavaScript中你不会想使用单独的语句块,因为它们不像你想象的C或Java中的语句块那样处理事物。例如:
acc8226
2022/05/17
8.1K0
前端异常的捕获与处理
? 这是第 89 篇不掺水的原创,想要了解更多,请戳上方蓝色字体:政采云前端团队 关注我们吧~ 本文首发于政采云前端团队博客:前端异常的捕获与处理 https://www.zoo.team/arti
政采云前端团队
2021/03/16
4.4K0
前端异常的捕获与处理
一文详聊前端异常原理
随着近年来前端监控体系建设日益完善,前端工程师对异常更加关注。业界关于 JS 异常介绍大多只谈了异常的捕获方法,对产生的原因和处理办法谈的较少。本文将详细的阐述异常原理,把笔者近 2 年在前端监控领域中与异常打交道的经验分享给大家。
coder_koala
2022/11/28
2K0
一文详聊前端异常原理
Java核心-异常处理
上一次学完了Java的核心类与API,这次来学习异常处理。我们都知道,Java语言具有健壮性和安全性,而异常处理机制就是其重要保证。如下
reload
2024/02/28
3910
Java核心-异常处理
Javascript错误处理
每个前端开发都会用到浏览器调试,有了这个调试,我们可以更好的找到问题并解决问题。我们主要讲错误处理。
大熊G
2022/11/14
1K0
Javascript错误处理
Node理论笔记:异步编程
在JavaScript中,函数是一等公民,使用非常自由,无论是调用它,或者作为参数,或者作为返回值均可。
Ashen
2020/06/01
1.1K0
JavaScript 编程精解 中文第三版 八、Bug 和错误
八、Bug 和错误 原文:Bugs and Errors 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《JavaScript 编程精解(第 2 版)》
ApacheCN_飞龙
2018/05/16
1.4K0
Js捕获异常的方法
JavaScript的异常主要使用try catch finally语句以及窗口对象window的onerror事件来捕获。
WindRunnerMax
2020/08/27
5.3K0
java中异常的捕获及处理「建议收藏」
什么是异常? 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止。在Java中即,Java在编译或运行或者运行过程中出现的错误。
全栈程序员站长
2022/07/21
2.9K0
java中异常的捕获及处理「建议收藏」
深入理解 java 异常处理机制
原文 https://blog.csdn.net/hguisu/article/details/6155636
猿芯
2021/05/27
7160
深入理解 java 异常处理机制
Python 学习入门(19)—— 异常
在项目开发中,异常处理是不可或缺的。异常处理帮助人们debug,通过更加丰富的信息,让人们更容易找到bug的所在。异常处理还可以提高程序的容错性。
阳光岛主
2019/02/19
6600
【AICAMP —— Python】入门系列!(5. 异常与处理)
在我们写程序过程中,往往不是一次性就能写出很好的代码,会因为各种问题,程序发生错误
灿视学长
2021/05/28
4150
Javascript错误处理
在Javascript中,通过try-catch语句来实现异常的处理。该语句作为标准的一部分,其语法规则如下:
行百里者半九十
2020/07/23
9690
错误处理与调试
错误处理对于web应用程序开发而言至关重要。不能提前预测可能发生的错误,不能提前采取恢复策略,可能导致较差的用户体验,最终引发用户不满。多数浏览器在默认情况下不会向用户报告错误,因此在开发和调试期间需要启用浏览器的错误报告功能。然而,在投入运行的产品代码中,则不应该再有诸如此类的错误报告出现(例如alert)
奋飛
2019/08/15
7050
C#OOP之十 异常机制及其处理
索引越界、文件I/O出错、堆栈溢出、除零运算问题、数据库无法使用等一个个问题,对于我们来说如何保证系统容错和程序规范,异常机制是不可或缺的重要因素和手段。良好的系统设计必定有良好的异常处理机制来保证程序的健壮性和容错机制。
张哥编程
2024/12/18
2760
C#OOP之十 异常机制及其处理
明明有了 promise ,为啥还需要 async await ?
https://juejin.cn/post/6960855679208783903
@超人
2021/07/06
1.3K0
相关推荐
JavaScript中的错误处理机制
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档