在前一篇博客中(https://blog.csdn.net/COMAC_919/article/details/120488768),介绍了如何创建编辑器,获取文档进行相应操作。
主体流程没问题,但是在一些极端情况下,比如初始状态中,打开的是一个PART文档,但是后续所有操作均需要在PRODUCT中进行操作,或者更甚者,获取文档失败,后续操作应该无从谈起,需要立即终止,此时需要添加相应错误捕获与类型判别。
一、错误捕获
针对pDocument进行try catch操作,如下所示:
CATFrmEditor* pEditor=CATFrmEditor::GetCurrentEditor();
CATDocument* pDocument=NULL;
try{
pDocument=pEditor.GetDocument();
}catch{
cout<<"文件没有打开"<<endl;
MessageBox(NULL,_T("请打开或新建一个文件"),_T("错误"),0);
RequestDelayedDestruction();//
return;
}
二、判断文档类型
CATIDocId* documentId=NULL;
pDocument->GetDocId(documentId);
CATUnicodeString documentType;
documentId->GetType(documentType);
CATUnicodeString targetType="CATProduct";
if(targetType!=documentType){
cout<<"打开类型错误"<<endl;
MessageBox(NULL,_T("请打开正确文件类型"),_T("文件类型错误"),0);
RequestDelayedDestruction();//
return;
}
其中targetType=""中类型种类如下:
1)CATProduct
2)待添加
3)