Javascript学习笔记12 错误处理和调试

Vue.js 调试和错误处理 在 Vue.js 开发过程中,调试和错误处理是提高代码质量和稳定性的两个重要环节。本指南将从调试工具、常见调试技巧和错误处理方法三个方面介绍 Vue.js 调试和错误处理的最佳实践。 阅读详情

IE、Firefox、Safari、Chrome和Opera等主流浏览器,都具有某种向用户报告JavaScript错误的机制。默认情况下,所有浏览器都会隐藏此类信息,需要开发人员启用报告功能

try-catch语句

基本用法

try{
    // 可能会发生错误的代码
} catch(error){
    // 在错误发生时怎么处理
}
  • 当try块中的任何代码发生了错误,就会立即退出,执行catch块中的代码,这一点和python的try-except语句很像。
  • error对象必须传入,即使你不想使用它,其具有一个message属性,保存着错误消息。

还可以添加finally语句,值得注意的是,无论前面try-catch语句块是否出错,最后一定会执行finally语句块的代码,即使前面包含return语句

function test(){
    try{
        return 2;
    }catch(error){
        return 1;
    }finally{
        return 0;
    }
}

以上函数会返回0,而不是2,finally之前的return语句会被忽略

错误类型

  • Error:基类型,所有错误都继承自该类型
  • EvalError:使用eval()函数时发生错误
  • RangeError:数值超出相应范围,例如数组越界等
  • ReferenceError:访问不存在的变量
  • SyntaxError:语法错误
  • TypeError:变量的类型不符合要求,例如传递给函数的参数
  • URIError:使用encodeURI()或decodeURI(),而URI格式不正确时

抛出错误

使用throw操作符,后接任意值,遇到该操作符,代码会立即停止执行,直到有try-catch语句捕获到被抛出的值

throw 12345;
throw "hello";
throw {name:"123"};

通常抛出某种内置的错误类型,可以更真实地模拟浏览器错误

throw new Error("bad");
throw new SyntaxError("bad");

也可以继承Error类型自定义错误,并抛出

function customError(message){
    this.message = message;
    this.name = "customError";
}

customError.prototype = new Error();

throw new customError("an error");

错误事件

任何没有通过try-catch处理的错误都会触发window对象的error事件。该事件不会创建event对象,而是接受三个参数:错误消息,错误所在的URL以及行号。要指定error事件处理程序,必须使用DOM0级技术。

window.onerror = function(message,url,line){
    alert(message);
    return false;   //通过返回false,阻止浏览器报告错误的默认行为
};

图像也支持error事件,当图像不能识别图像格式时,触发,此时会返回一个以图像为目标的event对象

var image = new Image();
image.onerror = function(evnet){
    alert("123");
};

调试

通过console对象向Javascript控制台写入消息,这个对象具有以下方法

  • error(message):将错误消息记录到控制台
  • info(message):将信息性消息记录到控制台
  • log(message):将一般消息记录到控制台
  • warn(message):将警告消息记录到控制台

可以使用assert()函数抛出错误信息,该函数接受两个参数,一个逻辑表达式和一个字符串。当逻辑表达式为false时,则输出传入的字符串(一般为错误消息)

console.assert(1==2,"1不等于2");
JavaScript中Promise链错误处理的调试方法 JavaScript Promise链错误调试的核心在于显式捕获、全局兜底、工具链协同。通过结合.catch()监控及开发者工具(如Chrome DevTools),开发者可高效定位异步错误。实战建议对关键Promise链添加.finally()进行资源清理使用处理并行任务中的部分失败实现统一的错误分类与日志系统通过本文的代码示例与调试方法,开发者可构建健壮的异步JavaScript应用,显著降低因未处理Promise拒绝导致的线上故障风险。 阅读详情

相关推荐

JavaScript 错误处理与调试

Hi,我是布兰妮甜!错误不可避免,但如何优雅地处理和从中学习,决定了代码的质量和开发者的成长。本文将深入探讨JavaScript中的错误处理机制以及调试的最佳实践,帮助开发者构建更加健壮的应用程序。

chaosweet的博客 1397

JS中错误处理

1 错误类型 1. Error 是基本类型 其他错误都继承该类型 2. EvalError 使用eval()函数时发生异常 3. RangeError 4. ReferenceError 找不到对象的情况下(导致object expected ),访问不存在的对象的时发生 5. SyntaxError 语法错误 6. TypeEr...

weixin_30740581的博客 220

js注意img图片的onerror事件的分析

打开网页时提示 Stack overflow at line: 0。img图片的onerror事件需要注意的细节。

JS img error 对未显示的图片进行操作

当图片不存在时,会自动获取自定义图片

先完成,再完美—60分比0分强100倍 5074

别再乱按F8了!Win10系统修复的正确姿势:用管理员CMD运行sfc /scannow

本文详细介绍了Windows 10系统修复的正确方法,重点推荐使用管理员CMD运行`sfc /scannow`命令。相比传统的F8键和重装系统,这一方法更高效且安全,能解决大多数系统文件损坏问题。文章还提供了管理员CMD的启动方式、sfc命令的完整参数解析以及实战故障排除流程图,帮助用户快速恢复系统健康。

weixin_29218963的博客 461

金融波动预测:GARCH模型实战解析与ARIMA对比

本文深入解析GARCH模型在金融波动预测中的实战应用,并与传统ARIMA模型进行对比。通过沪深300指数日收益率数据的案例分析,展示GARCH模型如何有效捕捉波动聚集效应,提升极端波动预测准确率。文章包含Python代码实现、参数解读及模型选择指南,为量化交易者提供实用的波动率建模解决方案。

weixin_29098367的博客 189

【JavaScript】错误处理与调试

throw new Error("除数不能为零");if (!throw new ValidationError("用户名不能为空");

Guiat的博客 917

【重启后nvidia-smi 命令出现错误】

NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

qq_44769377的博客 5211

【JavaScript】1.5 错误处理和调试

错误处理和调试是编程中的重要部分。通过理解和使用语句、函数、开发者工具和debugger语句,我们可以更有效地找到和修复代码中的错误。在接下来的章节中,我们将深入学习更多关于JavaScript的知识。希望你在学习的过程中能够找到乐趣,并且通过学习JavaScript,开启你的编程之旅!

Andy0214的专栏 2791

WSL2 + Open3D点云可视化踩坑全记录:从GLFW报错到VcXsrv配置,一篇讲清所有‘坑’

本文详细解析了在WSL2环境中使用Open3D进行点云可视化时遇到的常见问题,特别是GLFW报错和VcXsrv配置问题。通过系统性的解决方案和高级配置技巧,帮助开发者彻底解决图形显示、驱动加载和库版本冲突等难题,实现高效的点云可视化。

weixin_30627341的博客 101

RT-Thread 5.1.0 实战:手把手教你用CubeMX和RT-Studio创建第一个工程(附常见编译错误修复)

本文详细介绍了如何使用STM32CubeMX和RT-Thread Studio 5.1.0创建第一个RT-Thread工程,包括开发环境准备、CubeMX配置、工程整合及常见编译错误修复。通过实战指南,帮助开发者快速上手RT-Thread 5.1.0,解决开发过程中的典型问题,提升嵌入式开发效率。

weixin_29165465的博客 285

第 28 章 Javascript错误处理与调试

JavaScript 在错误处理调试上一直是它的软肋,如果脚本出错,给出的提示经常也让人摸不着头脑。ECMAScript 第 3 版为了解决这个问题引入了 try…catch 和 throw 语句以及一些错误类型,让开发人员更加适时的处理错误。

weixin_44010641的博客 2360

ESP8266开发之旅 基础篇① 走进ESP8266的世界

    欢迎大家来到ESP8266的世界,从现在开始,笔者将带领大家慢慢揭开ESP8266神秘的面纱。 1. 简介     从笔者的角度来说,ESP8266这个词可以理解为ESP8266EX芯片(当然,后面也有可能出现了其他芯片,这里首推ESP8266EX)以及依赖ESP8266EX芯片开发的系列模组的简称。     ESP8266EX是由乐鑫信息科技公司(Espressif)出品的一款应用于物联...

单片机菜鸟哥的博客 15万+

javascript错误处理和调试工具

通过使用try-catch语句、throw语句和Promise错误处理,我们可以捕获和处理可能出现的错误。同时,使用控制台打印、断点调试器和错误堆栈追踪工具,我们可以更深入地了解代码的执行情况和错误的来源。通过合理处理错误、使用调试工具和遵循最佳实践,我们可以更好地管理和调试JavaScript代码,提高应用程序的质量和稳定性。它允许我们尝试执行可能导致错误的代码,并在出现错误时捕获和处理异常。请根据以上提示和要点,结合您自己的经验和知识,编写一篇关于JavaScript错误处理和调试的博客。

精通前端技术,了解后端接口 434

【测绘程序设计】——潮汐调和分析

最小二乘潮汐调和分析源码、使用示例及数据

C_xxy's blog 2652

2026爬虫反爬终极对抗:AST解混淆+算法还原+Python复现全流程实战

本文分享了破解JS加密参数的完整流程,重点介绍AST解混淆和算法还原方法。针对电商网站常见的混淆手段(变量名混淆、控制流平坦化、字符串加密等),作者提出一套高效解决方案:通过AST解析还原可读代码,结合Chrome断点调试定位加密函数,最后用Python精准复现加密逻辑。文章包含具体的代码实现,如字符串数组还原的AST操作示例,并详细说明了从样本采集到验证测试的全流程。该方法已成功应用于10多个网站,将破解时间从一周缩短至一天,为处理JS加密参数提供了可复用的技术方案。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1524

JavaScript与FireFox的不解之缘——错误处理与调试

强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan 作为IT界的一员出现Bug真是在正常不过。在学习JavaScript的时候难免自己因为各种原因而导致出错,知道错误是什么之后才能快准狠的修改之。在学习过程中都习惯使用火狐浏览器进行查看效果,那么如何完美的借助火狐达到目的呢?下边就是答案! 【错误处理】...

至尊宝 2万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

JavaScript 错误处理与调试学习笔记

错误处理与调试 浏览器错误报告 所有主流桌面浏览器都提供了向用户报告错误的机制;默认情况下,所有浏览器都会隐藏错误信息;因为除了开发者外这些信息对其他人没有什么用,还有就是网页在正常操作中报错的固有特性 桌面控制台 所有的现代桌面浏览器都会通过控制台暴露错误,不同浏览器进入控制台方式不一样,详情看红宝书p675 移动控制台 浏览器不会直接在移动设备上提供控制台界面 错误处理 有良好的错误处理策略可以让用户知道发生了什么;为此必须理解各种捕获和处理JavaScript错误方式 try/catch语句 ECMA

Samuel的博客 462

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

JavaScript如何进行错误处理和调试?

在JavaScript开发中,错误处理和调试是不可或缺的技能。通过掌握本文介绍的方法和工具,我们可以更有效地识别、定位和修复代码中的错误,从而提高应用程序的稳定性和用户体验。在catch块中,我们可以捕获到一个Error对象,它包含了错误的详细信息,如错误消息、错误类型、堆栈跟踪等。代码审查是一种人工检查代码质量的方法,可以帮助我们发现潜在的错误、性能问题和安全漏洞。console.error('全局错误:', message, '在', url, '的第', lineNumber, '行');

derickForster的博客 434

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

JavaScript 第16章:错误处理与调试

错误处理是一个复杂但必不可少的过程。通过正确的错误处理策略,可以显著提高应用程序的健壮性和用户体验。希望以上的建议和示例能帮助你在开发过程中更好地应对各种错误情况。如果你有任何特定的问题或需要进一步的帮助,请随时提出。

hummhumm的专栏 1329

错误处理&&调试

错误处理和调试是 Node.js 开发过程中不可或缺的部分。通过正确处理同步和异步错误,确保应用程序的健壮性;利用调试工具和技术可以帮助你高效地定位和修复代码问题。掌握这些技能将显著提高你开发、维护和优化 Node.js 应用程序的能力。

疯狂假前端的博客 1088

JavaScript错误处理和调试_quagga

在JavaScript中,错误可以分为两种类型:语法错误和运行时错误。语法错误是由于代码不符合JavaScript语法规则而引发的,通常在代码编译阶段就会被捕获。而运行时错误则是在代码执行过程中发生的,可能是由于逻辑错误、参数错误等原因引起的。无论是使用console.log还是调试器,调试工具都是我们解决错误和异常的好帮手。通过调试工具,我们可以更加高效地定位和修复代码中的问题。在处理错误和异常时,调试工具是非常有用的。当然,下面是一些JavaScript错误处理和调试的练习题,以及它们的答案和分析。

2401_89312104的博客 449

JavaScript错误处理和调试

除了捕获系统错误外,我们还可以通过抛出自定义错误来处理特定情况下的错误。可以使用Error对象或其子类来创建自定义错误,并使用throw语句将其抛出。

hitpter的专栏 286

JavaScript 错误处理与调试完全指南

本文摘要:JavaScript错误处理与调试是开发者必备的核心技能。文章系统讲解了内置错误类型(SyntaxError、ReferenceError等)和自定义错误类的创建,详细介绍了try-catch-finally处理机制及异步错误处理的最佳实践。同时深入解析了Chrome DevTools的高级调试技巧,包括断点设置、性能分析和Source Map配置,并分享了实用的错误追踪与日志记录方法。掌握这些内容将显著提升代码健壮性和调试效率。

坚持不懈 一往无前 680
上一篇: Javascript学习笔记11 HTML5脚本编程
下一篇: XML学习笔记1 基础
PAT-python-zjw
博客等级 码龄10年 381粉丝 408原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值