private void CheckResultForOverflow(double result, string operationName)
 {
     if (!DoubleIsValid(result))
     {
         MathFault mf = new MathFault();
         mf.Operation   = operationName;
         mf.ProblemType = OverflowErrorName;
         throw new FaultException <MathFault>(mf, new FaultReason("Error of " + operationName + ": " + OverflowErrorName + "."));
     }
 }
        public double Divide(double number1, double number2)
        {
            CheckInput(number1);
            CheckInput(number2);

            if (number2 == 0)
            {
                MathFault mf = new MathFault();
                mf.Operation   = DivisionOperationName;
                mf.ProblemType = DivisionByZeroErrorName;
                throw new FaultException <MathFault>(mf, new FaultReason("Error of " + DivisionOperationName + ": " + DivisionByZeroErrorName + "."));
            }

            return(number1 / number2);
        }