Define NotANumber as a subclass of ValueError when using class-based
exceptions.

When raising NotANumber, pass the string that failed as the exception
value.
diff --git a/Lib/fpformat.py b/Lib/fpformat.py
index 8ddd73c..a9c405e 100644
--- a/Lib/fpformat.py
+++ b/Lib/fpformat.py
@@ -21,7 +21,11 @@
 # \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 @@
 # 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:]