How to know the exact line of code where an exception has been caused?(如何知道导致异常的确切代码行?)
问题描述
如果我自己生成异常,我可以在异常中包含任何信息:代码行数和源文件名称.像这样:
If I generate an exception on my own, I can include any info into the exception: a number of code line and name of source file. Something like this:
throw std::exception("myFile.cpp:255");
但是未处理的异常或非我生成的异常怎么办?
But what's with unhandled exceptions or with exceptions that were not generated by me?
推荐答案
似乎每个人都在努力改进您的代码以在您的代码中抛出异常,而没有人尝试解决您提出的实际问题.
It seems everyone is trying to improve your code to throw exceptions in your code, and no one is attempting the actual question you asked.
那是因为做不到.如果引发异常的代码仅以二进制形式呈现(例如在 LIB 或 DLL 文件中),那么行号就消失了,并且无法将对象连接到源代码中的一行.
Which is because it can't be done. If the code that's throwing the exception is only presented in binary form (e.g. in a LIB or DLL file), then the line number is gone, and there's no way to connect the object to to a line in the source code.
这篇关于如何知道导致异常的确切代码行?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何知道导致异常的确切代码行?
基础教程推荐
- 如何在不破坏 vtbl 的情况下做相当于 memset(this, ...) 的操作? 2022-01-01
- 如何使图像调整大小以在 Qt 中缩放? 2021-01-01
- 管理共享内存应该分配多少内存?(助推) 2022-12-07
- 在 C++ 中循环遍历所有 Lua 全局变量 2021-01-01
- 如何“在 Finder 中显示"或“在资源管理器中显 2021-01-01
- 从 std::cin 读取密码 2021-01-01
- 为 C/C++ 中的项目的 makefile 生成依赖项 2022-01-01
- 为什么语句不能出现在命名空间范围内? 2021-01-01
- 使用从字符串中提取的参数调用函数 2022-01-01
- Windows Media Foundation 录制音频 2021-01-01