Issue 3287: Raise correct exception for float inputs.
diff --git a/Lib/fractions.py b/Lib/fractions.py
index 3dc8184..944e1fc 100755
--- a/Lib/fractions.py
+++ b/Lib/fractions.py
@@ -96,9 +96,11 @@
if denominator == 0:
raise ZeroDivisionError('Fraction(%s, 0)' % numerator)
-
- numerator = numerator.__index__()
- denominator = denominator.__index__()
+ try:
+ numerator = numerator.__index__()
+ denominator = denominator.__index__()
+ except AttributeError:
+ raise TypeError('Numerator and denominator must support __index__.')
g = gcd(numerator, denominator)
self._numerator = numerator // g
self._denominator = denominator // g