我有一些代码可以解析这样的 XML 文件:
[doc := (XML.XMLParser new) parse: aFilename asURI] on: XML.SAXParseException
do: [:ex | MyCustomError raiseSignal: ex description].
我现在想通过将 XML 文件移动到名为“Failed”的文件夹来处理堆栈中更高的 MyCustomError,但由于解析器没有机会关闭文件,所以我收到了共享冲突错误。
如果我像这样更改我的代码,它可以工作,但我想知道是否有更好的方法:
[doc := (XML.XMLParser new) parse: aFilename asURI] on: XML.SAXParseException
do: [:ex | description := ex description].
description ifNotNil: [MyCustomError raiseSignal: description].