GetPropertyValueByPropertyId(long propertyid)怎么判断异常情况?
在c++builder中定义了一个TdxInspectorRes *dxInspectorRes1;
在调用GetPropertyValueByPropertyId()这个函数时报了如下错误
---------------------------
Debugger Exception Notification
---------------------------
Project TemplateEditer.exe raised exception class EAccessViolation with message 'Access violation at address 00000000. Read of address 00000000'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
实现的代码如下:
lsValue = dxInspectorRes1->GetPropertyValueByPropertyId(dxInspectorRes1->PropertyStruct[liVCL].property_id);
当GetPropertyValueByPropertyId获取到错误的信息时,如何判断这种异常情况,GetPropertyValueByPropertyId()会返回什么错误值?
[解决办法]
这个异常通常是访问了未经初始化的对象,需要逐个排查:
确认dxInspectorRes1是否有效,PropertyStruct是否有效,liVCL是否越界等。
建议将这一行代码拆分成数行。