--- a/Date.st Thu Nov 17 15:12:25 1994 +0100
+++ b/Date.st Thu Nov 17 15:18:16 1994 +0100
@@ -22,7 +22,7 @@
COPYRIGHT (c) 1989 by Claus Gittinger
All Rights Reserved
-$Header: /cvs/stx/stx/libbasic/Date.st,v 1.13 1994-10-10 00:22:36 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Date.st,v 1.14 1994-11-17 14:17:23 claus Exp $
'!
!Date class methodsFor:'documentation'!
@@ -43,7 +43,7 @@
version
"
-$Header: /cvs/stx/stx/libbasic/Date.st,v 1.13 1994-10-10 00:22:36 claus Exp $
+$Header: /cvs/stx/stx/libbasic/Date.st,v 1.14 1994-11-17 14:17:23 claus Exp $
"
!
@@ -615,29 +615,32 @@
"
!
-readFrom:aStream
+readFrom:aStream onError:exceptionBlock
"return a new Date, reading a printed representation from aStream.
- This method assumes american format (i.e. month-day-year) instead
- of the german/french and other day-month-year.
- There ought to be a nationalized variant of this."
+ BUG:
+ This method assumes american format (i.e. month-day-year) instead
+ of the german/french and other day-month-year.
+ There ought to be a nationalized variant of this."
|month day year|
[aStream peek isLetterOrDigit] whileFalse:[aStream next].
- (aStream peek isDigit) ifTrue:[day := Integer readFrom:aStream].
+ (aStream peek isDigit) ifTrue:[
+ day := Integer readFrom:aStream onError:[^ exceptionBlock value]
+ ].
[aStream peek isLetterOrDigit] whileFalse:[aStream next].
(aStream peek isLetter) ifTrue:[
month := aStream nextWord.
day isNil ifTrue:[
[aStream peek isLetterOrDigit] whileFalse:[aStream next].
- day := Integer readFrom:aStream.
+ day := Integer readFrom:aStream onError:[^ exceptionBlock value].
]
] ifFalse:[
month := self nameOfMonth:day.
- day := Integer readFrom:aStream
+ day := Integer readFrom:aStream onError:[^ exceptionBlock value]
].
[aStream peek isLetterOrDigit] whileFalse:[aStream next].
- year := Integer readFrom:aStream.
+ year := Integer readFrom:aStream onError:[^ exceptionBlock value].
^ self newDay:day month:month year:year
"
@@ -648,6 +651,7 @@
Date readFromString:'12/31/1992'
Date readFromString:'15.4.1992' -> german; leads to an error
Date readFromString:'10.4.1992' -> german; leads to a wrong date
+ Date readFromString:'10.4.1992' onError:['wrong date']
"
! !