You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ra...@apache.org on 2017/02/06 12:52:27 UTC

[06/13] commons-numbers git commit: NUMBERS-6: Make NumbersArithmeticException a private exception within ArithmeticUtils and change public API to reflect java.lang.ArithmeticException

NUMBERS-6: Make NumbersArithmeticException a private exception within ArithmeticUtils and change public API to reflect java.lang.ArithmeticException


Project: http://git-wip-us.apache.org/repos/asf/commons-numbers/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-numbers/commit/dca007d2
Tree: http://git-wip-us.apache.org/repos/asf/commons-numbers/tree/dca007d2
Diff: http://git-wip-us.apache.org/repos/asf/commons-numbers/diff/dca007d2

Branch: refs/heads/master
Commit: dca007d2226649a55bd3ee512580ca63d7354e56
Parents: fe27e8e
Author: Ray DeCampo <ra...@decampo.org>
Authored: Sun Jan 29 10:14:14 2017 -0500
Committer: Ray DeCampo <ra...@decampo.org>
Committed: Sun Jan 29 10:14:14 2017 -0500

----------------------------------------------------------------------
 .../commons/numbers/core/ArithmeticUtils.java   | 83 ++++++++++++++------
 .../core/NumbersArithmeticException.java        | 54 -------------
 .../numbers/core/ArithmeticUtilsTest.java       | 52 ++++++------
 .../commons/numbers/fraction/Fraction.java      | 12 +--
 .../numbers/fraction/FractionException.java     |  9 +--
 .../numbers/fraction/BigFractionTest.java       |  5 +-
 .../commons/numbers/fraction/FractionTest.java  | 51 ++++++------
 7 files changed, 117 insertions(+), 149 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-numbers/blob/dca007d2/commons-numbers-core/src/main/java/org/apache/commons/numbers/core/ArithmeticUtils.java
----------------------------------------------------------------------
diff --git a/commons-numbers-core/src/main/java/org/apache/commons/numbers/core/ArithmeticUtils.java b/commons-numbers-core/src/main/java/org/apache/commons/numbers/core/ArithmeticUtils.java
index 4f1d6cf..ee502ca 100644
--- a/commons-numbers-core/src/main/java/org/apache/commons/numbers/core/ArithmeticUtils.java
+++ b/commons-numbers-core/src/main/java/org/apache/commons/numbers/core/ArithmeticUtils.java
@@ -17,6 +17,7 @@
 package org.apache.commons.numbers.core;
 
 import java.math.BigInteger;
+import java.text.MessageFormat;
 
 /**
  * Some useful, arithmetics related, additions to the built-in functions in
@@ -36,11 +37,11 @@ public final class ArithmeticUtils {
      * @param x an addend
      * @param y an addend
      * @return the sum {@code x+y}
-     * @throws NumbersArithmeticException if the result can not be represented
+     * @throws ArithmeticException if the result can not be represented
      * as an {@code int}.
      */
     public static int addAndCheck(int x, int y)
-            throws NumbersArithmeticException {
+            throws ArithmeticException {
         long s = (long)x + (long)y;
         if (s < Integer.MIN_VALUE || s > Integer.MAX_VALUE) {
             throw new NumbersArithmeticException("overflow in addition: {0} + {1}", x, y);
@@ -54,9 +55,9 @@ public final class ArithmeticUtils {
      * @param a an addend
      * @param b an addend
      * @return the sum {@code a+b}
-     * @throws NumbersArithmeticException if the result can not be represented as an long
+     * @throws ArithmeticException if the result can not be represented as an long
      */
-    public static long addAndCheck(long a, long b) throws NumbersArithmeticException {
+    public static long addAndCheck(long a, long b) throws ArithmeticException {
         return addAndCheck(a, b, "overflow in addition: {0} + {1}");
     }
 
@@ -84,10 +85,10 @@ public final class ArithmeticUtils {
      * @param p Number.
      * @param q Number.
      * @return the greatest common divisor (never negative).
-     * @throws NumbersArithmeticException if the result cannot be represented as
+     * @throws ArithmeticException if the result cannot be represented as
      * a non-negative {@code int} value.
      */
-    public static int gcd(int p, int q) throws NumbersArithmeticException {
+    public static int gcd(int p, int q) throws ArithmeticException {
         int a = p;
         int b = q;
         if (a == 0 ||
@@ -223,10 +224,10 @@ public final class ArithmeticUtils {
      * @param p Number.
      * @param q Number.
      * @return the greatest common divisor, never negative.
-     * @throws NumbersArithmeticException if the result cannot be represented as
+     * @throws ArithmeticException if the result cannot be represented as
      * a non-negative {@code long} value.
      */
-    public static long gcd(final long p, final long q) throws NumbersArithmeticException {
+    public static long gcd(final long p, final long q) throws ArithmeticException {
         long u = p;
         long v = q;
         if ((u == 0) || (v == 0)) {
@@ -302,10 +303,10 @@ public final class ArithmeticUtils {
      * @param a Number.
      * @param b Number.
      * @return the least common multiple, never negative.
-     * @throws NumbersArithmeticException if the result cannot be represented as
+     * @throws ArithmeticException if the result cannot be represented as
      * a non-negative {@code int} value.
      */
-    public static int lcm(int a, int b) throws NumbersArithmeticException {
+    public static int lcm(int a, int b) throws ArithmeticException {
         if (a == 0 || b == 0){
             return 0;
         }
@@ -335,10 +336,10 @@ public final class ArithmeticUtils {
      * @param a Number.
      * @param b Number.
      * @return the least common multiple, never negative.
-     * @throws NumbersArithmeticException if the result cannot be represented
+     * @throws ArithmeticException if the result cannot be represented
      * as a non-negative {@code long} value.
      */
-    public static long lcm(long a, long b) throws NumbersArithmeticException {
+    public static long lcm(long a, long b) throws ArithmeticException {
         if (a == 0 || b == 0){
             return 0;
         }
@@ -356,10 +357,10 @@ public final class ArithmeticUtils {
      * @param x Factor.
      * @param y Factor.
      * @return the product {@code x * y}.
-     * @throws NumbersArithmeticException if the result can not be
+     * @throws ArithmeticException if the result can not be
      * represented as an {@code int}.
      */
-    public static int mulAndCheck(int x, int y) throws NumbersArithmeticException {
+    public static int mulAndCheck(int x, int y) throws ArithmeticException {
         long m = ((long)x) * ((long)y);
         if (m < Integer.MIN_VALUE || m > Integer.MAX_VALUE) {
             throw new NumbersArithmeticException();
@@ -373,10 +374,10 @@ public final class ArithmeticUtils {
      * @param a Factor.
      * @param b Factor.
      * @return the product {@code a * b}.
-     * @throws NumbersArithmeticException if the result can not be represented
+     * @throws ArithmeticException if the result can not be represented
      * as a {@code long}.
      */
-    public static long mulAndCheck(long a, long b) throws NumbersArithmeticException {
+    public static long mulAndCheck(long a, long b) throws ArithmeticException {
         long ret;
         if (a > b) {
             // use symmetry to reduce boundary cases
@@ -426,10 +427,10 @@ public final class ArithmeticUtils {
      * @param x Minuend.
      * @param y Subtrahend.
      * @return the difference {@code x - y}.
-     * @throws NumbersArithmeticException if the result can not be represented
+     * @throws ArithmeticException if the result can not be represented
      * as an {@code int}.
      */
-    public static int subAndCheck(int x, int y) throws NumbersArithmeticException {
+    public static int subAndCheck(int x, int y) throws ArithmeticException {
         long s = (long)x - (long)y;
         if (s < Integer.MIN_VALUE || s > Integer.MAX_VALUE) {
             throw new NumbersArithmeticException("overflow in subtraction: {0} - {1}", x, y);
@@ -443,10 +444,10 @@ public final class ArithmeticUtils {
      * @param a Value.
      * @param b Value.
      * @return the difference {@code a - b}.
-     * @throws NumbersArithmeticException if the result can not be represented as a
+     * @throws ArithmeticException if the result can not be represented as a
      * {@code long}.
      */
-    public static long subAndCheck(long a, long b) throws NumbersArithmeticException {
+    public static long subAndCheck(long a, long b) throws ArithmeticException {
         long ret;
         if (b == Long.MIN_VALUE) {
             if (a < 0) {
@@ -468,11 +469,11 @@ public final class ArithmeticUtils {
      * @param e Exponent (must be positive or zero).
      * @return \( k^e \)
      * @throws IllegalArgumentException if {@code e < 0}.
-     * @throws NumbersArithmeticException if the result would overflow.
+     * @throws ArithmeticException if the result would overflow.
      */
     public static int pow(final int k,
                           final int e)
-        throws NumbersArithmeticException {
+        throws ArithmeticException {
         if (e < 0) {
             throw new IllegalArgumentException("negative exponent ({" + e + "})");
         }
@@ -503,11 +504,11 @@ public final class ArithmeticUtils {
      * @param e Exponent (must be positive or zero).
      * @return \( k^e \)
      * @throws IllegalArgumentException if {@code e < 0}.
-     * @throws NumbersArithmeticException if the result would overflow.
+     * @throws ArithmeticException if the result would overflow.
      */
     public static long pow(final long k,
                            final int e)
-        throws NumbersArithmeticException {
+        throws ArithmeticException {
         if (e < 0) {
             throw new IllegalArgumentException("negative exponent ({" + e + "})");
         }
@@ -607,10 +608,10 @@ public final class ArithmeticUtils {
      * @param b Addend.
      * @param pattern Pattern to use for any thrown exception.
      * @return the sum {@code a + b}.
-     * @throws NumbersArithmeticException if the result cannot be represented
+     * @throws ArithmeticException if the result cannot be represented
      * as a {@code long}.
      */
-     private static long addAndCheck(long a, long b, String message) throws NumbersArithmeticException {
+     private static long addAndCheck(long a, long b, String message) throws ArithmeticException {
          final long result = a + b;
          if (!((a ^ b) < 0 || (a ^ result) >= 0)) {
              throw new NumbersArithmeticException(message, a, b);
@@ -750,4 +751,34 @@ public final class ArithmeticUtils {
         return dividend >= 0L || dividend < divisor ? 0L : 1L;
     }
 
+    private static class NumbersArithmeticException extends ArithmeticException {
+        /** Serializable version Id. */
+        private static final long serialVersionUID = -6024911025449780474L;
+
+        private final Object[] formatArguments;
+
+        /**
+         * Default constructor.
+         */
+        public NumbersArithmeticException() {
+            this("arithmetic exception");
+        }
+
+        /**
+         * Constructor with a specific message.
+         *
+         * @param message Message pattern providing the specific context of
+         * the error.
+         * @param args Arguments.
+         */
+        public NumbersArithmeticException(String message, Object ... args) {
+            super(message);
+            this.formatArguments = args;
+        }
+
+        @Override
+        public String getMessage() {
+            return MessageFormat.format(super.getMessage(), formatArguments);
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/commons-numbers/blob/dca007d2/commons-numbers-core/src/main/java/org/apache/commons/numbers/core/NumbersArithmeticException.java
----------------------------------------------------------------------
diff --git a/commons-numbers-core/src/main/java/org/apache/commons/numbers/core/NumbersArithmeticException.java b/commons-numbers-core/src/main/java/org/apache/commons/numbers/core/NumbersArithmeticException.java
deleted file mode 100644
index a910e80..0000000
--- a/commons-numbers-core/src/main/java/org/apache/commons/numbers/core/NumbersArithmeticException.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.commons.numbers.core;
-
-import java.text.MessageFormat;
-
-/**
- * Base class for arithmetic exceptions.
- */
-public class NumbersArithmeticException extends ArithmeticException {
-    /** Serializable version Id. */
-    private static final long serialVersionUID = -6024911025449780474L;
-
-    private final Object[] formatArguments;
-
-    /**
-     * Default constructor.
-     */
-    public NumbersArithmeticException() {
-        this("arithmetic exception");
-    }
-
-    /**
-     * Constructor with a specific message.
-     *
-     * @param message Message pattern providing the specific context of
-     * the error.
-     * @param args Arguments.
-     */
-    public NumbersArithmeticException(String message, Object ... args) {
-        super(message);
-        this.formatArguments = args;
-    }
-
-    @Override
-    public String getMessage() {
-        return MessageFormat.format(super.getMessage(), formatArguments);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/commons-numbers/blob/dca007d2/commons-numbers-core/src/test/java/org/apache/commons/numbers/core/ArithmeticUtilsTest.java
----------------------------------------------------------------------
diff --git a/commons-numbers-core/src/test/java/org/apache/commons/numbers/core/ArithmeticUtilsTest.java b/commons-numbers-core/src/test/java/org/apache/commons/numbers/core/ArithmeticUtilsTest.java
index 500aca3..a7185da 100644
--- a/commons-numbers-core/src/test/java/org/apache/commons/numbers/core/ArithmeticUtilsTest.java
+++ b/commons-numbers-core/src/test/java/org/apache/commons/numbers/core/ArithmeticUtilsTest.java
@@ -37,12 +37,12 @@ public class ArithmeticUtilsTest {
         try {
             ArithmeticUtils.addAndCheck(big, 1);
             Assert.fail("Expecting ArithmeticException");
-        } catch (NumbersArithmeticException ex) {
+        } catch (ArithmeticException ex) {
         }
         try {
             ArithmeticUtils.addAndCheck(bigNeg, -1);
             Assert.fail("Expecting ArithmeticException");
-        } catch (NumbersArithmeticException ex) {
+        } catch (ArithmeticException ex) {
         }
     }
 
@@ -99,21 +99,21 @@ public class ArithmeticUtilsTest {
             // gcd(Integer.MIN_VALUE, 0) > Integer.MAX_VALUE
             ArithmeticUtils.gcd(Integer.MIN_VALUE, 0);
             Assert.fail("expecting ArithmeticException");
-        } catch (NumbersArithmeticException expected) {
+        } catch (ArithmeticException expected) {
             // expected
         }
         try {
             // gcd(0, Integer.MIN_VALUE) > Integer.MAX_VALUE
             ArithmeticUtils.gcd(0, Integer.MIN_VALUE);
             Assert.fail("expecting ArithmeticException");
-        } catch (NumbersArithmeticException expected) {
+        } catch (ArithmeticException expected) {
             // expected
         }
         try {
             // gcd(Integer.MIN_VALUE, Integer.MIN_VALUE) > Integer.MAX_VALUE
             ArithmeticUtils.gcd(Integer.MIN_VALUE, Integer.MIN_VALUE);
             Assert.fail("expecting ArithmeticException");
-        } catch (NumbersArithmeticException expected) {
+        } catch (ArithmeticException expected) {
             // expected
         }
     }
@@ -173,21 +173,21 @@ public class ArithmeticUtilsTest {
             // gcd(Long.MIN_VALUE, 0) > Long.MAX_VALUE
             ArithmeticUtils.gcd(Long.MIN_VALUE, 0);
             Assert.fail("expecting ArithmeticException");
-        } catch (NumbersArithmeticException expected) {
+        } catch (ArithmeticException expected) {
             // expected
         }
         try {
             // gcd(0, Long.MIN_VALUE) > Long.MAX_VALUE
             ArithmeticUtils.gcd(0, Long.MIN_VALUE);
             Assert.fail("expecting ArithmeticException");
-        } catch (NumbersArithmeticException expected) {
+        } catch (ArithmeticException expected) {
             // expected
         }
         try {
             // gcd(Long.MIN_VALUE, Long.MIN_VALUE) > Long.MAX_VALUE
             ArithmeticUtils.gcd(Long.MIN_VALUE, Long.MIN_VALUE);
             Assert.fail("expecting ArithmeticException");
-        } catch (NumbersArithmeticException expected) {
+        } catch (ArithmeticException expected) {
             // expected
         }
     }
@@ -220,7 +220,7 @@ public class ArithmeticUtilsTest {
             // lcm == abs(MIN_VALUE) cannot be represented as a nonnegative int
             ArithmeticUtils.lcm(Integer.MIN_VALUE, 1);
             Assert.fail("Expecting ArithmeticException");
-        } catch (NumbersArithmeticException expected) {
+        } catch (ArithmeticException expected) {
             // expected
         }
 
@@ -228,14 +228,14 @@ public class ArithmeticUtilsTest {
             // lcm == abs(MIN_VALUE) cannot be represented as a nonnegative int
             ArithmeticUtils.lcm(Integer.MIN_VALUE, 1<<20);
             Assert.fail("Expecting ArithmeticException");
-        } catch (NumbersArithmeticException expected) {
+        } catch (ArithmeticException expected) {
             // expected
         }
 
         try {
             ArithmeticUtils.lcm(Integer.MAX_VALUE, Integer.MAX_VALUE - 1);
             Assert.fail("Expecting ArithmeticException");
-        } catch (NumbersArithmeticException expected) {
+        } catch (ArithmeticException expected) {
             // expected
         }
     }
@@ -269,7 +269,7 @@ public class ArithmeticUtilsTest {
             // lcm == abs(MIN_VALUE) cannot be represented as a nonnegative int
             ArithmeticUtils.lcm(Long.MIN_VALUE, 1);
             Assert.fail("Expecting ArithmeticException");
-        } catch (NumbersArithmeticException expected) {
+        } catch (ArithmeticException expected) {
             // expected
         }
 
@@ -277,7 +277,7 @@ public class ArithmeticUtilsTest {
             // lcm == abs(MIN_VALUE) cannot be represented as a nonnegative int
             ArithmeticUtils.lcm(Long.MIN_VALUE, 1<<20);
             Assert.fail("Expecting ArithmeticException");
-        } catch (NumbersArithmeticException expected) {
+        } catch (ArithmeticException expected) {
             // expected
         }
 
@@ -286,7 +286,7 @@ public class ArithmeticUtilsTest {
         try {
             ArithmeticUtils.lcm(Long.MAX_VALUE, Long.MAX_VALUE - 1);
             Assert.fail("Expecting ArithmeticException");
-        } catch (NumbersArithmeticException expected) {
+        } catch (ArithmeticException expected) {
             // expected
         }
     }
@@ -299,12 +299,12 @@ public class ArithmeticUtilsTest {
         try {
             ArithmeticUtils.mulAndCheck(big, 2);
             Assert.fail("Expecting ArithmeticException");
-        } catch (NumbersArithmeticException ex) {
+        } catch (ArithmeticException ex) {
         }
         try {
             ArithmeticUtils.mulAndCheck(bigNeg, 2);
             Assert.fail("Expecting ArithmeticException");
-        } catch (NumbersArithmeticException ex) {
+        } catch (ArithmeticException ex) {
         }
     }
 
@@ -340,12 +340,12 @@ public class ArithmeticUtilsTest {
         try {
             ArithmeticUtils.subAndCheck(big, -1);
             Assert.fail("Expecting ArithmeticException");
-        } catch (NumbersArithmeticException ex) {
+        } catch (ArithmeticException ex) {
         }
         try {
             ArithmeticUtils.subAndCheck(bigNeg, 1);
             Assert.fail("Expecting ArithmeticException");
-        } catch (NumbersArithmeticException ex) {
+        } catch (ArithmeticException ex) {
         }
     }
 
@@ -355,7 +355,7 @@ public class ArithmeticUtilsTest {
         try {
             ArithmeticUtils.subAndCheck(big, -1);
             Assert.fail("Expecting ArithmeticException");
-        } catch (NumbersArithmeticException ex) {
+        } catch (ArithmeticException ex) {
             Assert.assertTrue(ex.getMessage().length() > 1);
         }
     }
@@ -444,7 +444,7 @@ public class ArithmeticUtilsTest {
 
     }
 
-    @Test(expected=NumbersArithmeticException.class)
+    @Test(expected=ArithmeticException.class)
     public void testPowIntOverflow() {
         ArithmeticUtils.pow(21, 8);
     }
@@ -459,7 +459,7 @@ public class ArithmeticUtilsTest {
                             ArithmeticUtils.pow(base, 7));
     }
 
-    @Test(expected=NumbersArithmeticException.class)
+    @Test(expected=ArithmeticException.class)
     public void testPowNegativeIntOverflow() {
         ArithmeticUtils.pow(-21, 8);
     }
@@ -492,7 +492,7 @@ public class ArithmeticUtilsTest {
         }
     }
 
-    @Test(expected=NumbersArithmeticException.class)
+    @Test(expected=ArithmeticException.class)
     public void testPowLongOverflow() {
         ArithmeticUtils.pow(21, 15);
     }
@@ -507,7 +507,7 @@ public class ArithmeticUtilsTest {
                             ArithmeticUtils.pow(base, 14));
     }
 
-    @Test(expected=NumbersArithmeticException.class)
+    @Test(expected=ArithmeticException.class)
     public void testPowNegativeLongOverflow() {
         ArithmeticUtils.pow(-21L, 15);
     }
@@ -558,7 +558,7 @@ public class ArithmeticUtilsTest {
         try {
             ArithmeticUtils.addAndCheck(a, b);
             Assert.fail("Expecting ArithmeticException");
-        } catch (NumbersArithmeticException ex) {
+        } catch (ArithmeticException ex) {
             // success
         }
     }
@@ -567,7 +567,7 @@ public class ArithmeticUtilsTest {
         try {
             ArithmeticUtils.mulAndCheck(a, b);
             Assert.fail("Expecting ArithmeticException");
-        } catch (NumbersArithmeticException ex) {
+        } catch (ArithmeticException ex) {
             // success
         }
     }
@@ -576,7 +576,7 @@ public class ArithmeticUtilsTest {
         try {
             ArithmeticUtils.subAndCheck(a, b);
             Assert.fail("Expecting ArithmeticException");
-        } catch (NumbersArithmeticException ex) {
+        } catch (ArithmeticException ex) {
             // success
         }
     }

http://git-wip-us.apache.org/repos/asf/commons-numbers/blob/dca007d2/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/Fraction.java
----------------------------------------------------------------------
diff --git a/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/Fraction.java b/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/Fraction.java
index c000f2c..005e6e6 100644
--- a/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/Fraction.java
+++ b/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/Fraction.java
@@ -422,7 +422,7 @@ public class Fraction
      * @param fraction  the fraction to add, must not be {@code null}
      * @return a {@code Fraction} instance with the resulting values
      * @throws NullPointerException if the fraction is {@code null}
-     * @throws NumbersArithmeticException if the resulting numerator or denominator exceeds
+     * @throws ArithmeticException if the resulting numerator or denominator exceeds
      *  {@code Integer.MAX_VALUE}
      */
     public Fraction add(Fraction fraction) {
@@ -445,7 +445,7 @@ public class Fraction
      * @param fraction  the fraction to subtract, must not be {@code null}
      * @return a {@code Fraction} instance with the resulting values
      * @throws NullPointerException if the fraction is {@code null}
-     * @throws NumbersArithmeticException if the resulting numerator or denominator
+     * @throws ArithmeticException if the resulting numerator or denominator
      *   cannot be represented in an {@code int}.
      */
     public Fraction subtract(Fraction fraction) {
@@ -468,7 +468,7 @@ public class Fraction
      * @param isAdd true to add, false to subtract
      * @return a {@code Fraction} instance with the resulting values
      * @throws NullPointerException if the fraction is {@code null}
-     * @throws NumbersArithmeticException if the resulting numerator or denominator
+     * @throws ArithmeticException if the resulting numerator or denominator
      *   cannot be represented in an {@code int}.
      */
     private Fraction addSub(Fraction fraction, boolean isAdd) {
@@ -525,7 +525,7 @@ public class Fraction
      * @param fraction  the fraction to multiply by, must not be {@code null}
      * @return a {@code Fraction} instance with the resulting values
      * @throws NullPointerException if the fraction is {@code null}
-     * @throws NumbersArithmeticException if the resulting numerator or denominator exceeds
+     * @throws ArithmeticException if the resulting numerator or denominator exceeds
      *  {@code Integer.MAX_VALUE}
      */
     public Fraction multiply(Fraction fraction) {
@@ -560,7 +560,7 @@ public class Fraction
      * @return a {@code Fraction} instance with the resulting values
      * @throws IllegalArgumentException if the fraction is {@code null}
      * @throws FractionException if the fraction to divide by is zero
-     * @throws NumbersArithmeticException if the resulting numerator or denominator exceeds
+     * @throws ArithmeticException if the resulting numerator or denominator exceeds
      *  {@code Integer.MAX_VALUE}
      */
     public Fraction divide(Fraction fraction) {
@@ -604,7 +604,7 @@ public class Fraction
      * @param numerator  the numerator, for example the three in 'three sevenths'
      * @param denominator  the denominator, for example the seven in 'three sevenths'
      * @return a new fraction instance, with the numerator and denominator reduced
-     * @throws NumbersArithmeticException if the denominator is {@code zero}
+     * @throws ArithmeticException if the denominator is {@code zero}
      */
     public static Fraction getReducedFraction(int numerator, int denominator) {
         if (denominator == 0) {

http://git-wip-us.apache.org/repos/asf/commons-numbers/blob/dca007d2/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/FractionException.java
----------------------------------------------------------------------
diff --git a/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/FractionException.java b/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/FractionException.java
index 6080981..d0a3788 100644
--- a/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/FractionException.java
+++ b/commons-numbers-fraction/src/main/java/org/apache/commons/numbers/fraction/FractionException.java
@@ -16,12 +16,10 @@
  */
 package org.apache.commons.numbers.fraction;
 
-import org.apache.commons.numbers.core.NumbersArithmeticException;
-
 /**
  * Base class for all exceptions thrown in the module.
  */
-public class FractionException extends NumbersArithmeticException {
+public class FractionException extends ArithmeticException {
 
     /** Serializable version identifier. */
     private static final long serialVersionUID = 201701191744L;
@@ -36,9 +34,4 @@ public class FractionException extends NumbersArithmeticException {
         this.formatArguments = formatArguments;
     }
 
-    public FractionException(String message, Throwable cause, Object... formatArguments) {
-        super(message, cause);
-        this.formatArguments = formatArguments;
-    }
-
 }

http://git-wip-us.apache.org/repos/asf/commons-numbers/blob/dca007d2/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/BigFractionTest.java
----------------------------------------------------------------------
diff --git a/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/BigFractionTest.java b/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/BigFractionTest.java
index c4c3e12..b7ce258 100644
--- a/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/BigFractionTest.java
+++ b/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/BigFractionTest.java
@@ -18,7 +18,6 @@ package org.apache.commons.numbers.fraction;
 
 import java.math.BigDecimal;
 import java.math.BigInteger;
-import org.apache.commons.numbers.core.NumbersArithmeticException;
 import org.apache.commons.numbers.core.TestUtils;
 
 import org.junit.Assert;
@@ -435,8 +434,8 @@ public class BigFractionTest {
         BigFraction f2 = BigFraction.ZERO;
         try {
             f1.divide(f2);
-            Assert.fail("expecting NumbersArithmeticException");
-        } catch (NumbersArithmeticException ex) {
+            Assert.fail("expecting ArithmeticException");
+        } catch (ArithmeticException ex) {
         }
 
         f1 = new BigFraction(0, 5);

http://git-wip-us.apache.org/repos/asf/commons-numbers/blob/dca007d2/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/FractionTest.java
----------------------------------------------------------------------
diff --git a/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/FractionTest.java b/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/FractionTest.java
index 3b2c4cb..a2c1f8e 100644
--- a/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/FractionTest.java
+++ b/commons-numbers-fraction/src/test/java/org/apache/commons/numbers/fraction/FractionTest.java
@@ -16,7 +16,6 @@
  */
 package org.apache.commons.numbers.fraction;
 
-import org.apache.commons.numbers.core.NumbersArithmeticException;
 import org.apache.commons.numbers.core.TestUtils;
 import org.junit.Assert;
 import org.junit.Test;
@@ -47,13 +46,13 @@ public class FractionTest {
         try {
             new Fraction(Integer.MIN_VALUE, -1);
             Assert.fail();
-        } catch (NumbersArithmeticException ex) {
+        } catch (ArithmeticException ex) {
             // success
         }
         try {
             new Fraction(1, Integer.MIN_VALUE);
             Assert.fail();
-        } catch (NumbersArithmeticException ex) {
+        } catch (ArithmeticException ex) {
             // success
         }
 
@@ -323,8 +322,8 @@ public class FractionTest {
         f = new Fraction(Integer.MIN_VALUE, 1);
         try {
             f = f.negate();
-            Assert.fail("expecting NumbersArithmeticException");
-        } catch (NumbersArithmeticException ex) {}
+            Assert.fail("expecting ArithmeticException");
+        } catch (ArithmeticException ex) {}
     }
 
     @Test
@@ -379,35 +378,35 @@ public class FractionTest {
 
         try {
             f = f.add(Fraction.ONE); // should overflow
-            Assert.fail("expecting NumbersArithmeticException but got: " + f.toString());
-        } catch (NumbersArithmeticException ex) {}
+            Assert.fail("expecting ArithmeticException but got: " + f.toString());
+        } catch (ArithmeticException ex) {}
 
         // denominator should not be a multiple of 2 or 3 to trigger overflow
         f1 = new Fraction(Integer.MIN_VALUE, 5);
         f2 = new Fraction(-1,5);
         try {
             f = f1.add(f2); // should overflow
-            Assert.fail("expecting NumbersArithmeticException but got: " + f.toString());
+            Assert.fail("expecting ArithmeticException but got: " + f.toString());
         } catch (FractionOverflowException ex) {}
 
         try {
             f= new Fraction(-Integer.MAX_VALUE, 1);
             f = f.add(f);
-            Assert.fail("expecting NumbersArithmeticException");
-        } catch (NumbersArithmeticException ex) {}
+            Assert.fail("expecting ArithmeticException");
+        } catch (ArithmeticException ex) {}
 
         try {
             f= new Fraction(-Integer.MAX_VALUE, 1);
             f = f.add(f);
-            Assert.fail("expecting NumbersArithmeticException");
-        } catch (NumbersArithmeticException ex) {}
+            Assert.fail("expecting ArithmeticException");
+        } catch (ArithmeticException ex) {}
 
         f1 = new Fraction(3,327680);
         f2 = new Fraction(2,59049);
         try {
             f = f1.add(f2); // should overflow
-            Assert.fail("expecting NumbersArithmeticException but got: " + f.toString());
-        } catch (NumbersArithmeticException ex) {}
+            Assert.fail("expecting ArithmeticException but got: " + f.toString());
+        } catch (ArithmeticException ex) {}
     }
 
     @Test
@@ -457,13 +456,13 @@ public class FractionTest {
         try {
             f1 = new Fraction(1, Integer.MAX_VALUE);
             f = f1.divide(f1.reciprocal());  // should overflow
-            Assert.fail("expecting NumbersArithmeticException");
-        } catch (NumbersArithmeticException ex) {}
+            Assert.fail("expecting ArithmeticException");
+        } catch (ArithmeticException ex) {}
         try {
             f1 = new Fraction(1, -Integer.MAX_VALUE);
             f = f1.divide(f1.reciprocal());  // should overflow
-            Assert.fail("expecting NumbersArithmeticException");
-        } catch (NumbersArithmeticException ex) {}
+            Assert.fail("expecting ArithmeticException");
+        } catch (ArithmeticException ex) {}
 
         f1 = new Fraction(6, 35);
         f  = f1.divide(15);
@@ -542,8 +541,8 @@ public class FractionTest {
             f1 = new Fraction(1, Integer.MAX_VALUE);
             f2 = new Fraction(1, Integer.MAX_VALUE - 1);
             f = f1.subtract(f2);
-            Assert.fail("expecting NumbersArithmeticException");  //should overflow
-        } catch (NumbersArithmeticException ex) {}
+            Assert.fail("expecting ArithmeticException");  //should overflow
+        } catch (ArithmeticException ex) {}
 
         // denominator should not be a multiple of 2 or 3 to trigger overflow
         f1 = new Fraction(Integer.MIN_VALUE, 5);
@@ -556,21 +555,21 @@ public class FractionTest {
         try {
             f= new Fraction(Integer.MIN_VALUE, 1);
             f = f.subtract(Fraction.ONE);
-            Assert.fail("expecting NumbersArithmeticException");
-        } catch (NumbersArithmeticException ex) {}
+            Assert.fail("expecting ArithmeticException");
+        } catch (ArithmeticException ex) {}
 
         try {
             f= new Fraction(Integer.MAX_VALUE, 1);
             f = f.subtract(Fraction.ONE.negate());
-            Assert.fail("expecting NumbersArithmeticException");
-        } catch (NumbersArithmeticException ex) {}
+            Assert.fail("expecting ArithmeticException");
+        } catch (ArithmeticException ex) {}
 
         f1 = new Fraction(3,327680);
         f2 = new Fraction(2,59049);
         try {
             f = f1.subtract(f2); // should overflow
-            Assert.fail("expecting NumbersArithmeticException but got: " + f.toString());
-        } catch (NumbersArithmeticException ex) {}
+            Assert.fail("expecting ArithmeticException but got: " + f.toString());
+        } catch (ArithmeticException ex) {}
     }
 
     @Test