mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Define NotANumber as a subclass of ValueError when using class-based
exceptions. When raising NotANumber, pass the string that failed as the exception value.
This commit is contained in:
parent
9e0b6229f6
commit
b8690fbc95
1 changed files with 6 additions and 2 deletions
|
@ -21,7 +21,11 @@ decoder = re.compile(r'^([-+]?)0*(\d*)((?:\.\d*)?)(([eE][-+]?\d+)?)$')
|
|||
# \3 fraction (empty or begins with point)
|
||||
# \4 exponent part (empty or begins with 'e' or 'E')
|
||||
|
||||
NotANumber = 'fpformat.NotANumber'
|
||||
try:
|
||||
class NotANumber(ValueError):
|
||||
pass
|
||||
except TypeError:
|
||||
NotANumber = 'fpformat.NotANumber'
|
||||
|
||||
# Return (sign, intpart, fraction, expo) or raise an exception:
|
||||
# sign is '+' or '-'
|
||||
|
@ -30,7 +34,7 @@ NotANumber = 'fpformat.NotANumber'
|
|||
# expo is an integer
|
||||
def extract(s):
|
||||
res = decoder.match(s)
|
||||
if res is None: raise NotANumber
|
||||
if res is None: raise NotANumber, s
|
||||
sign, intpart, fraction, exppart = res.group(1,2,3,4)
|
||||
if sign == '+': sign = ''
|
||||
if fraction: fraction = fraction[1:]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue