【发布时间】:2020-10-09 01:03:24
【问题描述】:
我正在努力:
try{
int * i = NULL;
*i = 3;
}catch(Exception &Err){
ShowMessage(Err.Message);
}
我认为这应该捕获访问冲突异常并通过显示错误消息来处理它。
但由于某种原因,我变得简单
访问冲突
消息而不是完整的消息
模块 YYY 中的访问冲突 XXX。写入地址 ZZZ。
顺便说一句,ExceptObject() 例程由于某种奇怪的原因返回 NULL。
我在这里错过了什么?
【问题讨论】:
-
您只看到“Access Vialition”,因为它应该是这样工作的。 RTL 不会将整个异常数据存储到被抛出的 EAccessViolation 对象中。至于 exceptObject(),你没有说你使用的是哪个版本的 C++Builder。 exceptObject() 和 exceptAddr() 已知在旧版本的 C++ 中存在错误。
标签: exception exception-handling c++builder access-violation