调试:高级别与低级别错误

时间:2009-11-01 20:52:20

标签: debugging language-agnostic

您通常花在调试高级错误和低级别错误上的时间的大致比例是多少?

出于本次讨论的目的,高级错误包括错误算法,关于输入数据和/或操作环境的错误假设,在初始实现某些事情时被忽略的情况,忘记处理边界条件/边缘为了便于讨论,它们还可能包括糟糕的设计决策,这些决策会在代码中引入限制并且不易改变,即使这会扩展错误的定义。换句话说,高级错误是由于不意味着你应该具有的意义而导致的错误。

低级别的错误是内存管理和损坏问题,空指针解除引用不是由高级错误引起的,微妙的语法错误通过编译器,在执行数组操作时出现一个错误换句话说,它们是由于没有编码你的意思而导致的错误。

另外,为了便于比较,您主要使用哪种语言以及您主要使用哪种类型的编程?

3 个答案:

答案 0 :(得分:1)

根据您的定义,我看到的几乎所有错误都是“高级别”错误。

我使用.net框架在C#中工作。该框架几乎可以处理您定义为低级别错误的所有内容。

答案 1 :(得分:0)

低级错误通常只由编译器修复。所以,先看看高级错误然后看低级错误(如果需要的话)。因为试图构建一个建筑物并且想要在弱的情况下建立强大的墙壁建造的基地完全没用。

它有趣但真实。想想它。

答案 2 :(得分:0)

如果我正确理解了您的问题,您可以将错误分为两种类型 - 由编程实践不良引起的错误以及由设计和规范中的问题引起的错误。假设我的理解确实是正确的,我会说作为开发人员,我花了更多的时间来追踪低级别的错误,特别是如果他们很难重现(是的,该死的多线程错误只发生在生产中,我正在谈论您!)。另一方面,设计和规范级别的错误通常会导致项目出现严重延迟,但更容易重现并在代码中定位。