[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Help-smalltalk] Re: Magritte-Seaside and validation errors
From: |
Paolo Bonzini |
Subject: |
[Help-smalltalk] Re: Magritte-Seaside and validation errors |
Date: |
Mon, 04 May 2009 12:50:10 +0200 |
User-agent: |
Thunderbird 2.0.0.21 (Macintosh/20090302) |
I think this is because Magritte makes very demanding use of exceptions.
It might be that Squeak and GNU Smalltalk behave in a different way.
Can you try filing in the attached class and then evaluating:
{TestError new resumableTest: #halt outerHandler: #yourself.
TestError new resumableTest: #halt outerHandler: #resume.
TestError new beResumable; resumableTest: #pass outerHandler: #yourself.
TestError new beResumable; resumableTest: #pass outerHandler: #resume.
TestError new beResumable; resumableTest: #outer outerHandler: #yourself.
TestError new beResumable; resumableTest: #outer outerHandler: #resume.
TestError new beResumable; resumableTest: #resumeOuter outerHandler:
#yourself.
TestError new beResumable; resumableTest: #resumeOuter outerHandler:
#resume}
under Squeak?
Thanks,
Paolo
Error subclass: #TestError
instanceVariableNames: 'resumable'
classVariableNames: ''
poolDictionaries: ''
category: ''!
!TestError methodsFor: 'testing'!
isResumable
^resumable ifNil: [ false ]
!
beResumable
resumable := true
!
description
^'test'
!
resumeOuter
self resume: self outer
!
resumableTest: ifResumableSymbol outerHandler: outerHandlerSymbol
[[ self signal. ^true ]
on: TestError
do: [ :err |
err isResumable
ifTrue: [err perform: ifResumableSymbol]
ifFalse: [err beResumable; signal]]]
on: TestError
do: [ :err | err perform: outerHandlerSymbol ].
^false
! !
- [Help-smalltalk] Re: Magritte-Seaside and validation errors,
Paolo Bonzini <=