次のような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].