程序员解决「Bug」的真实过程.......
作为程序员这个身份开始工作到现在,已经有2,3年了。
可以说程序员人生中能遇上的bug,我也遇上了七七八八了。如果要简单的给这些bug分门别类,我认为可以分为两类——工程类bug和非工程类bug。
其中,工程类bug很好理解,就是程序在工程上出了问题。
在线学习:
https://www.bilibili.com/video/BV1CHEtz2EZv
包括编译不通过,部分或全部功能不能成功执行,都属于这个类型的。
这类bug也是比较好解决的,就是不断地打断点,打log。从正常运行的部分代码一步步往下走,直到发现异常为止。
这是一个较为重复又机械的工作。
而非工程类bug就五花八门了,大到程序全部跑通,结果就是不正确,小到某一模块不能正常工作。
这类bug种类繁多,永远能突破人类想象力极限。
而解决bug的对策也要看运气。
简单的bug可能解决方法仅是搜索一下相关问题,跟着前人的经验走,就能解决了。
复杂的bug则需要看源码,看底层,看原理。
有时候为了解决一个bug,看完的资料堆起来有小半本书高都是常有的事情。
评论区聊聊你的想法吧{:10_330:}
如果有收获,别忘了评分{:10_281:} :
https://xxx.ilovefishc.com/forum/202011/20/092334ggd6inlzfisfrdir.png.thumb.jpg
https://xxx.ilovefishc.com/forum/202505/12/120451wiv7viv5iebupbbr.png 最近尝试做dz插件,明明就是按照教程做的,就是没有效果… 233333 太真实了 @FishC 常见Bug分析 不二如是 发表于 2025-05-18 09:24
@FishC 常见Bug分析
FishC常见Bug分析及解决方案
1. 语法错误(Syntax Errors)
最常见的新手错误,通常由符号缺失或格式错误引起。
# 错误示例:缺少冒号
if x > 5
print("大于5")
[*]解决方法:检查 if/for/while 后的冒号,括号/引号是否成对
[*]典型报错: SyntaxError: invalid syntax
2. 变量未定义(NameError)
print(name)# 变量未赋值直接使用
[*]解决方法:检查变量作用域,避免拼写错误(区分大小写)
[*]典型报错:NameError: name 'xxx' is not defined
3. 索引越界(IndexError)
lst =
print(lst)# 有效索引为0-2
[*]解决方法:使用前检查列表长度 len(lst)
[*]典型报错:IndexError: list index out of range
4. 类型错误(TypeError)
"100" + 10# 字符串与数字直接相加
[*]解决方法:使用类型转换 int("100") 或检查变量类型
[*]典型报错:TypeError: can only concatenate str to str
5. 死循环(Infinite Loop)
while True:# 缺少退出条件
print("循环中...")
[*]解决方法:确保循环有终止条件(如 break 或变量控制)
[*]危险提示:可能导致程序卡死
Debug通用技巧:
[*]逐行注释代码定位问题
[*]使用 print() 输出中间变量值
[*]使用IDE的断点调试功能
遇到具体报错时,建议先完整阅读错误提示(最后一行冒号后的内容通常为关键信息)。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 233333 太真实了 tomok 发表于 2025-5-18 09:28
233333 太真实了
{:9_233:} 233333 太真实了
修复bug修复得脑壳疼{:9_217:} 既要懂业务,还要懂代码{:5_96:} 233333 太真实了
页:
[1]