但是,我开始认为也许最好让应用程序立即在同一个函数中的第一个NulL指针取消引用中爆炸 – 然后崩溃转储文件将揭示发生了什么 – 并让一个彻底的测试过程发现坏的函数调用.
不检查NulL并让应用程序爆炸的一个问题是,如果指针实际上没有在该函数中解除引用,而是存储以供以后使用,那么解除引用爆炸将脱离上下文并且更难以诊断.
有关于此的任何想法或最佳做法?
编辑1:我忘了提到我们的许多代码都是第三方开发人员的库,可能会或可能不知道我们的内部错误处理策略.但功能仍然正确记录!
解决方法 这是一个简单的电话.当没有预期时获得NulL指针是程序中的错误或程序状态严重受损的明显迹象.其中任何一个都需要程序员对它做些什么.抛出异常只会在没有被捕获时才能正常运行.如果它被捕获,你会丢失非常重要的诊断信息,它会抛弃所有重要的调用堆栈,帮助您了解它是如何进入该状态的.如果没有捕获,那么C异常和硬件异常之间没有明显的区别.异常可能在某处被捕获的风险要求您不要抛出异常并让它死掉.
对于在捕获异常后可以生成调用堆栈的运行时环境,这种考虑是非常不同的.在托管环境中很常见,而不是在本机C/C++中.
总结以上是内存溢出为你收集整理的c – 抛出(或相应地)NULL函数参数而不是让它全部爆炸?全部内容,希望文章能够帮你解决c – 抛出(或相应地)NULL函数参数而不是让它全部爆炸?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)