JavaScript 如何正确的读懂报错信息

news2025/1/15 12:48:26

文章目录

  • 前言
  • 一、查看报错
    • 1.控制台报错
    • 2.终端报错
  • 二、查找错误演示
  • 总结


前言


一、查看报错

如何阅读报错信息, 根据信息快速锁定错误.

1.控制台报错

红色报错信息格式:

xxxx Error: xxxxx报错信息xxxxx                  最终报错文件:行编号 
  at 最终报错方法名 (最终报错文件名: 致错行编号: 致错列编号) 
  at 第4执行方法名 (文件名: 致错行编号: 致错列编号)
  at 第3执行方法名 (文件名: 致错行编号: 致错列编号)
  at 第2执行方法名 (文件名: 致错行编号: 致错列编号)
  at 首个执行方法名 (文件名: 致错行编号: 致错列编号) 

首行报错信息下方的是位置信息, 对代码熟悉的话基本只看第一行就够了, 但是不熟悉的话需要定位错误就可以依据这个.

这些小字应当从下向上浏览, 它们描述以什么样的执行顺序遇到了这个错误, 以及最终错误发生于何处, 我会在下面做一个演示.

不过使用开发框架的话, 这些位置信息并不会全部有用, 一般最靠上的几条是有价值的信息, 是你自己写的代码, 其他的都是框架内的执行错误, 如果没有研究过框架那么就是没用的信息了.


2.终端报错

比较严重的报错会出现在控制台, 可能会导致项目故障无法运行或者功能下线.
项目配置问题报错直接百度.
如果是自己代码的问题, 先看报错信息第一句大写开头的人话, 大体了解一下错误原因, 之后需要定位错误, 中间部分通常展示该错误导致了哪些地方出现了其他错误, 这并不是我们需要的, 直接去报错信息最下面往上看.
如果少了东西, 那么你能操作的, 或者说, 真正因为你的操作出错的那个地方, 通常显示在倒数几个路径, 检查看看有没有自己熟悉的路径.
在这里插入图片描述
参考最后一行, 缺少文件于./algos/models, 缺少文件deep_annotation_interface.h5


二、查找错误演示

这里用最常见的TypeError错误做演示.
引起原因是执行至某处后, 某些值的类型发生错误(TypeError), 而某些方法或者操作无法对该类型正常执行, 比如发生用for去遍历undefined的情况.

Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'xxxx')

常见如undefined错误, undefinedJavaScirpt执行过程中基本要做特殊判定和处理来过滤出去, 这种类型表示这个变量在内存里有开辟空间但是空间里什么都没有, 别人能用的方法和操作它不能用, 和其他类型一起加入运算会出错.

在这里插入图片描述

可以来验证一下:
从最后一行开始:

在这里插入图片描述

data.js--active_world, 428行第19字:

在这里插入图片描述
428行, 4格缩进, a在第19列.

428行world是引入的world.jsworld类原型有activate方法, 看倒数第二行报错:

在这里插入图片描述

world.js寻找active方法, 致错位置行481列18:

在这里插入图片描述
之后下一个报错在world.go, 此处也调用了world.go.
寻找world.go, 错误位置应当在world.go内部, 行495列22:

在这里插入图片描述
on_finishedworld.active作为参数接收, 来到下一个报错位置:

在这里插入图片描述
editor.js on_finished2375行26列
在这里插入图片描述
发现报错函数作为参数传入this.data.active_world, 去data.js寻找active_world:

在这里插入图片描述
发现world.activeon_finished参数也由此传入, 即调用on_finished相当于调用editor.json_load_world_finished, 这时候去看报错信息寻找下一处执行位置:

在这里插入图片描述
on_load_world_finished, 下一处报错位置:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
行2591列32, 输出一下b, 没问题, forEach会有问题? 该是add_label的问题, floatLabelManager引入自floatLabel.js.

中间两行看不懂(估计是forEach的影响), 直接往上看:

在这里插入图片描述

定位最终报错位置:

在这里插入图片描述


总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/162573.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PySpark中RDD的数据输出详解

目录 一. 回顾 二.输出为python对象 collect算子 演示 reduce算子 演示 take算子 演示 count算子 演示 小结 三.输出到文件中 savaAsTextFile算子 演示 配置Hadoop依赖 修改rdd分区为1个 小结 四.练习案例 需求: 代码 一. 回顾 数据输入: sc.paralle…

Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context_学习笔记

Transformer-XL学习笔记 一、Transformer-XL出现的原因 首先说明Transformer的变形版本Transformer-XL出现的原因: transformer作为一种特提取器,在NLP中有广泛的应用,但是transformer需要对输入的序列设置固定的长度,例如在Ber…

(考研湖科大教书匠计算机网络)第一章概述-第四节:计算机网络的性能指标

文章目录(1)速率(2)带宽(3)吞吐量(4)时延①:基本概念②:计算公式(5)时延带宽积(6)往返时间RTT(7&a…

dp(六) 线性dp整合 最长(公共子串、公共子序列、上升子序列、回文子串)

1、最大公共子串_牛客题霸_牛客网​编辑 2、最长上升子序列(一)_牛客题霸_牛客网 3、最长回文子串_牛客题霸_牛客网 4、最长公共子序列(二)_牛客题霸_牛客网 #include <iostream> using namespace std; #include<vector>int main() {string str1,str2;cin>>…

mysql数据迁移报错问题

mysql8.0.17备份数据库到mysql5.7.26的There was error(s) while executing the queries问题解决&#xff08;数据库高版本向低版本数据迁移解决&#xff09; 问题背景 要将本地的mysql数据库导入到linux中的mysql中&#xff0c;其中&#xff0c;本地mysql数据库的版本是8.0.…

数字硬件建模SystemVerilog-时序逻辑建模(1)RTL时序逻辑的综合要求

数字门级电路可分为两大类&#xff1a;组合逻辑和时序逻辑。锁存器是组合逻辑和时序逻辑的一个交叉点&#xff0c;在后面会作为单独的主题处理。组合逻辑描述了门级电路&#xff0c;其中逻辑块的输出直接反映到该块的输入值的组合&#xff0c;例如&#xff0c;双输入AND门的输出…

N5247A网络分析仪

18320918653 N5247A Agilent N5247A 网络分析仪主要特性与技术指标 10 MHz 至 67 GHz2 端口或 4 端口&#xff0c;具有两个内置信号源可提供 4 端口 110 GHz 单次扫描解决方案110 dB 系统动态范围&#xff0c;32001 个点&#xff0c;32 个通道&#xff0c;5 MHz 中频带宽高输…

MySQL中深入浅出索引

文章目录前言一、索引的常见模型二、InnoDB的索引模型三、索引的维护四、索引的优化覆盖索引联合索引最左前缀原则索引下推前言 我们在看书的时候&#xff0c;打算回看某一个桥段的内容时。这是你肯定会是先翻看书的目录&#xff0c;从目录确定这段内容的位置&#xff0c;然后…

爬虫利用多线程快速爬取数据

一般单线程爬数据太慢了话&#xff0c;就采用多线程。 一般要根据两种情形来选择 自定义线程线程池 往往最关键的地方在&#xff0c;多个线程并发执行后&#xff0c;是否需要线性的返回结果。也就是先调用的线程&#xff0c;返回的结果要在前面。 或者说&#xff0c;某个对…

mysql简单数据查询——数采数据电量与耗料的日统计

目录 前言 步骤1&#xff1a;date_format函数 步骤2&#xff1a;concat函数 步骤3、4&#xff1a;查询中使用变量 完整代码 前言 在数采数据已写入mysql数据库中后&#xff0c;进行数据处理&#xff0c;统计电量与耗料数据 由于数据库版本较低&#xff0c;无法使用较新的…

华为策略路由实验配置

配置接口相关的IP地址&#xff0c;并配置IGP路由协议使得全网互通 AR1配置接口策略路由 对经过本地转发的路由生效&#xff0c;对本地始发的路由不生效 配置nqa检测下一跳状态 nqa test-instance PC1 icmptrace nqa的管理者为PC1&#xff0c;NQA的测试例名为icmptrace test-…

全国青少年软件编程(Scratch)等级考试二级考试真题2022年12月——持续更新.....

1.一个骰子,从3个不同角度看过去的点数如图所示,请问5的对面是什么点数?( ) A.1 B.3 C.4 D.6 正确答案:A 答案解析: 根据图三,用右手定则,大拇指朝上指向6所对的方向,其余四指握起来表示旋转方向,可以看到先5后2,然后把这个姿势对应到图1中,就知道1的对面是5…

C语言进阶(8)——动态内存空间管理

前言 文章目录前言1.为什么存在动态内存分配2.动态内存函数的介绍2.1 malloc函数2.2 free函数2.3 calloc2.4realloc3 常见的动态内存错误4.经典笔试题题目 1&#xff1a;题目 2&#xff1a;题目 3&#xff1a;题目 4&#xff1a;5.C/C程序的内存开辟6.柔性数组6.1 定义6.2 柔性…

1.5、中断和异常

整体框架 1、中断的概念和作用 当中断发生时&#xff0c;CPU 立即进入核心态\color{red}核心态核心态 当中断发生后&#xff0c;当前运行的进程暂停运行&#xff0c;并由操作系统内核对中断进行处理 对于不同的中断信号&#xff0c;会进行不同的处理 发生了中断&#xff0c…

记录--“非主流” 的纯前端性能优化

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 性能优化一直是前端研究的主要课题之一&#xff0c;因为不仅直接影响用户体验&#xff0c;对于商业性公司&#xff0c;网页性能的优劣更关乎流量变现效率的高低。例如 DoubleClick by Google 发现&…

MD5加密

MD5加密 md5加密 明文 加密变成 128位二进制 --> 32位16进制字符串的密文 MD5特征: 明文一样, 得到密文一样密文一样, 推出明文一样明文不一样, 得到密文不一样 缺点&#xff1a; 现在网上有很多暴力破解的网址&#xff0c;直接使用md5加密还是不太安全 为了提高安全性&am…

Linux常用命令——vmstat命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) vmstat 显示虚拟内存状态 补充说明 vmstat命令的含义为显示虚拟内存状态&#xff08;“Viryual Memor Statics”&#xff09;&#xff0c;但是它可以报告关于进程、内存、I/O等系统整体运行状态。 语法 vmst…

Java高并发编程实战,异步注解@Async自定义线程池

一、Async注解 Async的作用就是异步处理任务。 在方法上添加Async&#xff0c;表示此方法是异步方法&#xff1b; 在类上添加Async&#xff0c;表示类中的所有方法都是异步方法&#xff1b; 使用此注解的类&#xff0c;必须是Spring管理的类&#xff1b; 需要在启动类或配置类…

ELK日志(1)

Elasticsearch开源分布式搜索引擎&#xff0c;它的特点有&#xff1a;分布式&#xff0c;零配置&#xff0c;自动发现&#xff0c;索引自动分片&#xff0c;索引副本机制&#xff0c;restful 风格接口&#xff0c;多数据源&#xff0c;自动搜索负载等。RESTFUL特点包括&#xf…

MES系统之工控

MES系统之工控 要控制MES系统首先要对他有个了解。MES系统最早由1990年&#xff0c;由美国先进制造研究中心AMR提出的&#xff0c;当时中文意思叫制造执行系统概念。直到1997年&#xff0c;MESA(制造执行系统协会)提出了MES功能组件和继承模型&#xff0c;到20世纪90年代初期&a…