Delphi TZipMaster-如何捕获异常?

时间:2019-03-19 19:14:49

标签: delphi delphi-2007

我使用Delphi TZipMaster创建和提取ZIP文件。它可以工作,但问题是,当出现问题时,它不会生成异常,而是会显示来自组件本身的消息。

所以在下面的代码中:

try
zipmaster1.ZipFileName := 'C:\example.zip';
zipmaster1.FSpecArgs.Clear;
zipmaster1.fspecargs.Add('installl.exe');
zipmaster1.ExtrBaseDir := 'c:\';
// the line below will show a message 'This archive is not a valid ZIP archive';
// i want it to throw an exception instead, so i can catch it and handle in my app
zipmaster1.Extract; 
except
// never will reach here
end;

1 个答案:

答案 0 :(得分:2)

我认为您不需要通过捕获异常来做自己想做的事情。

TZipMaster组件有一个OnMessage事件-有关文档http://www.delphizip.org/192/help/index.html的信息,请参见此处-您可以使用该事件检测您提到的错误情况,然后根据需要采取措施,例如通过调用TZipMaster的Cancel方法。

当前错误代码将传递给OnMessage事件。无效的存档消息的errcode值为ZE_NoValidZip,因此当该代码传递到OnMessage时,可能就是您通过调用Cancel做出响应时。