Hi folks.
The following code is working very well, but when an Error occurs, I would like it to ignore the error and continue.
Transcript clear.
[(WikitextModule allSubclasses select:[:module | (module pagetitle indexOf:$/ ifAbsent:[0]) > 0])
do:[:m | |ss f d cmd shell content ios|
ss := m pagetitle squeakToUtf8 findBetweenSubStrs: '/'.
d := ss collect:[:each | each] from: 1 to: (ss size -1).
"handle Sandbox and User: here"
((d at:1) = 'Sandbox') | ((d at:1) beginsWith:'User:')
ifTrue:[]
ifFalse:[
d := d inject:'' into:[:a :b | a, '/', b].
f := ('lua',d, '/', ss last, '.lua') squeakToUtf8 . "ios writes to shared by default"
cmd := 'mkdir -p shared/lua', d. "commandshell writes to squeak root directory, so we prepende 'shared' to it"
Transcript show: (m name), ' : ', cmd; cr.
shell := PipeableOSProcess bash.
shell pipeFromOutput reader setNonBlocking.
shell exec: cmd.
(Delay forMilliseconds: 400) wait.
Transcript show: shell upToEnd ; cr.
shell close.
content := m lua squeakToUtf8.
ios := FileStream newFileNamed: f.
ios isNil
ifFalse:[
content storeOn: ios.
ios close.
]].
]] ifError:[:x :y | Transcript show: x;cr. y close. thisContext resume]
The error is
WikitextModule613405370 : mkdir -p shared/lua/Road_data/strings/USA/KY
Error: cannot create OS pipe
I am assuming it is happening during the mkdir -p command during the shell sequence of code in bold above but that is not my question.
Although it could be happening in the ios portion.
My question is how, after the Error is thrown do I continue the 'do:[:m...] block?
thanks for your time.
Well, after poking around seeing what I could do, it appears that Errors are not resumeable.
Error>> isResumable "Determine whether an exception is resumable."
^ false
So, I have to prevent the error from occuring in the first place.
-- Sent from: http://forum.world.st/Squeak-Beginners-f107673.html
Btw, you can ignore any Exception using #resumeUnchecked:. But whether this makes sense depends on your concrete use case ...
________________________________ Von: Beginners beginners-bounces@lists.squeakfoundation.org im Auftrag von tty gettimothy@zoho.com Gesendet: Freitag, 30. August 2019 14:37:48 An: beginners@lists.squeakfoundation.org Betreff: Re: [Newbies] Continue/Ignore error
Well, after poking around seeing what I could do, it appears that Errors are not resumeable.
Error>> isResumable "Determine whether an exception is resumable."
^ false
So, I have to prevent the error from occuring in the first place.
-- Sent from: http://forum.world.st/Squeak-Beginners-f107673.html _______________________________________________ Beginners mailing list Beginners@lists.squeakfoundation.org http://lists.squeakfoundation.org/mailman/listinfo/beginners
beginners@lists.squeakfoundation.org