'From Squeak5.3beta of 29 December 2019 [latest update: #19301] on 3 January 2020 at 2:51:27 am'! ExceptionSet subclass: #ExceptionConjunction instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Kernel-Exceptions'! ExceptionSet subclass: #ExceptionDisjunction instanceVariableNames: '' classVariableNames: '' poolDictionaries: '' category: 'Kernel-Exceptions'! !BlockClosure methodsFor: 'exception protocol' stamp: 'ct 1/3/2020 02:11'! & anotherPattern ^ ExceptionConjunction with: self with: anotherPattern! ! !BlockClosure methodsFor: 'exception protocol' stamp: 'ct 1/3/2020 02:11'! , anotherPattern ^ ExceptionDisjunction with: self with: anotherPattern! ! !BlockClosure methodsFor: 'exception protocol' stamp: 'ct 1/3/2020 02:51'! handles: anException ^ self cull: anException! ! !Exception class methodsFor: 'exception protocol' stamp: 'ct 1/3/2020 02:06'! & anotherExceptionPattern ^ ExceptionConjunction with: self with: anotherExceptionPattern! ! !Exception class methodsFor: 'exception protocol' stamp: 'ct 1/3/2020 02:06'! , anotherExceptionPattern ^ ExceptionDisjunction with: self with: anotherExceptionPattern! ! !ExceptionSet methodsFor: 'exception protocol' stamp: 'ct 1/3/2020 02:23'! & anotherPattern self flag: #doubleDispatch "possible optimization". ^ ExceptionConjunction with: self with: anotherPattern! ! !ExceptionSet methodsFor: 'exception protocol' stamp: 'ct 1/3/2020 02:23'! , anotherPattern self flag: #doubleDispatch "possible optimization". ^ ExceptionDisjunction with: self with: anotherPattern! ! !ExceptionSet methodsFor: 'exception protocol' stamp: 'ct 1/3/2020 02:09'! handles: anException "Determine whether an exception handler will accept a signaled exception." ^ self subclassResponsibility! ! !ExceptionConjunction methodsFor: 'exception protocol' stamp: 'ct 1/3/2020 02:08'! , anotherPattern self add: anotherPattern.! ! !ExceptionConjunction methodsFor: 'exception protocol' stamp: 'ct 1/3/2020 02:03'! handles: anException ^ exceptions allSatisfy: [:pattern | pattern handles: anException]! ! !ExceptionDisjunction methodsFor: 'exception protocol' stamp: 'ct 1/3/2020 02:08'! & anotherPattern self add: anotherPattern.! ! !ExceptionDisjunction methodsFor: 'exception protocol' stamp: 'ct 1/3/2020 02:03'! handles: anException ^ exceptions anySatisfy: [:pattern | pattern handles: anException]! ! !ExceptionSet class methodsFor: 'instance creation' stamp: 'ct 1/3/2020 02:05'! with: anExceptionPattern ^ self new add: anExceptionPattern; yourself! ! !ExceptionSet class methodsFor: 'instance creation' stamp: 'ct 1/3/2020 02:05'! with: anExceptionPattern with: anotherExceptionPattern ^ self new add: anExceptionPattern; add: anotherExceptionPattern; yourself! ! !ExceptionSet class reorganize! ('instance creation' with: with:with:) ! !ExceptionDisjunction reorganize! ('exception protocol' & handles:) ! !ExceptionConjunction reorganize! ('exception protocol' , handles:) !