不同情况的报错定位和解决合集

1. 语法错误(Syntax Errors)
这是由于代码不符合语法规则而引起的错误,通常在代码编译阶段发生。

定位:编辑器提示和控制台输出

2. 类型错误(Type Errors)
这种错误发生在尝试使用不适合的类型执行操作时。

列举四种情况:

(1)调用未定义的方法或属性

定位:控制台输出和console.log

解决:检查对象是否存在,属性名或方法有无拼写错误

(2)数据类型不匹配

不同数据类型进行不恰当的操作,比如,期望的是数值类型,但实际传入的是字符串类型

定位:控制台提示类型不匹配错误,eg:Cannot convert'string' to 'number'。

在关键位置log输出变量的类型和值(typeof),检查数据类型。

解决:类型转换,eg:number(),string()。检查数据来源,确保传入的数据类型正确

(3)异步操作返回值类型错误

异步操作返回的数据类型与代码中预期的不一致,比如,期望返回的是数组,但实际是字符串

定位:在异步操作完成后,使用 console.log 输出返回值,检查其类型和结构是否符合预期。控制台会显示与类型不匹配相关的错误

解决:在使用返回值之前,对数据进行类型检查和处理

(4)函数参数类型错误

传入的参数类型与函数定义的参数类型不匹配

定位:控制台会提示传入的参数类型与函数定义的参数类型不匹配。在函数内部使用 console.log 输出参数的类型和值,检查是否符合预期。

解决:类型转换,在调用函数之前,将参数转换为所需的类型

3. 引用错误(Reference Errors)
当尝试使用未定义的变量、对象或函数时,会触发引用错误

定位:控制台会输出错误信息,其中包含错误类型(如 ReferenceError)、出错的文件和具体行号。例如,若使用了未定义的变量 myVariable,控制台会显示类似于 Uncaught ReferenceError: myVariable is not defined 的错误信息。

(1)未定义变量或函数的使用

(2)作用域问题导致的引用错误

变量的作用域不正确,在变量未定义的作用域中使用该变量

(3)异步加载导致

在异步操作完成之前尝试访问其返回的数据

(4)拼写错误

变量名、函数名或模块名拼写错误导致引用错误

4.资源加载错误(Resource Loading Errors)

当浏览器无法加载网页所需的资源时,比如 JavaScript 文件、样式表或图片等

(1)文件路径错误:相对路径和绝对路径

定位:检查文件位置和相对路径是否正确,绝对路径检查域名,端口

解决:使用自动补全功能来减少路径错误

(2)文件不存在:文件误删和文件未上传

定位:检查项目目录,确认文件是否存在。检查服务器上的文件目录,确保文件正确上传。

解决:恢复或重新创建文件,重新上传缺失文件到服务器。

(3)服务器问题:配置错误?

(4)跨域问题:同源策略限制

定位:在浏览器控制台中,若出现类似 “Access to XMLHttpRequest at 'https://example.com' from origin 'https://yourdomain.com' has been blocked by CORS policy” 的错误信息,就表明存在跨域问题。

解决:服务器端配置 CORS:在服务器端设置响应头,允许跨域访问。

(5)浏览器缓存问题

定位:若修改了资源文件,但浏览器仍然加载旧的资源,可能是缓存问题。可以尝试在浏览器的无痕模式下打开页面,若资源加载正常,就说明是缓存问题。

解决:手动清除缓存:在浏览器的设置中找到 “清除浏览数据” 选项,选择清除缓存

5.网络错误(NetWork Error)

当求情远程资源时,如果网络出现问题,比如服务器无响应、连接超时等,会触发网络错误。

6.promise异常(Promise Errors)

在使用 Promise 进行异步操作时,可能会出现 Promise 拒绝(Rejected)的情况,此时会触发 Promise 异常

(1)网络请求失败

如状态码404、500,或网络连接中断promise会被拒绝

解决:使用try...catch捕获异常,添加重试机制,对于网络请求失败的情况,自动重新发送请求

(2)异步操作中的逻辑错误

promise的执行函数中,出现逻辑错误。如处理返回的数据时,数据格式不符合预期

解决:数据验证,添加错误处理逻辑

(3)未处理的异常

没有对可能出现的异常进行处理,也可能导致promise被拒绝

解决:使用.catch方法来处理拒绝的情况。全局错误处理,可以使用 app.config.errorHandler 来捕获全局的错误

7.运行时错误(Runtime Errors)

通常在代码执行期间发生,不是语法错误,但在特定条件下导致代码无法正常执行

(1)访问未定义的对象或属性:具体见上

(2)异步操作失败:见上

(3)数据类型不匹配:见上

(4)数组越界:访问数组元素时,若索引超出数组范围,会引发运行时错误

 定位:当出现数组越界错误时,控制台会输出具体的错误信息,包含错误类型(一般是 RangeError)、出错的文件和行号。例如,若代码尝试访问一个长度为 5 的数组的第 6 个元素,控制台可能会显示类似 “Uncaught RangeError: Index out of range” 的错误信息

解决:边界检查,访问数组元素之前,先检查索引是否在数组的有效范围内

posted @ 2025-04-14 22:37  k954  阅读(191)  评论(0)    收藏  举报