diff --git a/source/Buoy-Exception-Handling/BlockClosure.extension.st b/source/Buoy-Exception-Handling/BlockClosure.extension.st index bb54693..3edb1d5 100644 --- a/source/Buoy-Exception-Handling/BlockClosure.extension.st +++ b/source/Buoy-Exception-Handling/BlockClosure.extension.st @@ -4,6 +4,9 @@ Extension { #name : #BlockClosure } BlockClosure >> on: selector except: exclusionSelector do: action [ ^ self - on: selector - exclusionSelector - do: action + on: selector + do: [ :exception | + (exclusionSelector handles: exception) + ifTrue: [ exception pass ] + ifFalse: [ action value: exception ] ] ]