不同情况的报错定位和解决合集
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” 的错误信息
解决:边界检查,访问数组元素之前,先检查索引是否在数组的有效范围内
                    
                
                
            
        
浙公网安备 33010602011771号