當我有一些代碼來分析這樣的XML文件:錯誤處理解析XML文件
[doc := (XML.XMLParser new) parse: aFilename asURI] on: XML.SAXParseException
do: [:ex | MyCustomError raiseSignal: ex description].
我現在要處理的MyCustomError在堆棧中較高的,由XML文件移動到文件夾名爲'失敗',但我得到了共享違規錯誤,因爲解析器沒有機會關閉該文件。
如果我改變我的代碼,這樣它的工作原理,但我不知道是否有更好的辦法:
[doc := (XML.XMLParser new) parse: aFilename asURI] on: XML.SAXParseException
do: [:ex | description := ex description].
description ifNotNil: [MyCustomError raiseSignal: description].