我们有一个应用程序,通过从TPersistent降序将项目信息存储在文件中。我们使用TSteam.ReadComponentRes从流读取到对象。
我们希望能够打开属性未知的项目文件(来自应用程序的较新版本或其他开发分支)。当前,这会在TReader中导致异常,该异常是由TStream创建的。我们已经考虑过制作一个TStream后代,该后代使用处理该异常的TReader后代而不是停止读取。有人能想到一种更优雅的方式吗?
最佳答案
调用Stream.ReadResHeader,创建一个TReader实例,设置其OnError事件并调用Reader.ReadRootComponent并释放阅读器(即模仿TStream.ReadComponentRes的行为)。
在OnError事件处理程序中,您可以将handled:= true设置为。