View Javadoc

1   /*
2    * Copyright 2004 The Apache Software Foundation.
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.apache.commons.math;
17  
18  /***
19   * Exeption thrown when an error occurs evaluating a function.
20   * <p>
21   * Maintains an <code>argument</code> property holding the input value that
22   * caused the function evaluation to fail.
23   * 
24   * @version $Revision: 1.2 $ $Date: 2004/07/17 21:12:52 $
25   */
26  public class FunctionEvaluationException extends MathException  {
27      
28      /*** Serializable version identifier */
29      static final long serialVersionUID = -317289374378977972L;
30      
31      /*** Argument causing function evaluation failure */
32      private double argument = Double.NaN;
33      
34      /***
35       * Construct an exception indicating the argument value
36       * that caused the function evaluation to fail.  Generates an exception
37       * message of the form "Evaluation failed for argument = " + argument.
38       * 
39       * @param argument  the failing function argument 
40       */
41      public FunctionEvaluationException(double argument) {
42          this(argument, "Evaluation failed for argument = " + argument);
43      }
44      
45      /***
46       * Construct an exception using the given argument and message
47       * text.  The message text of the exception will start with 
48       * <code>message</code> and be followed by 
49       * " Evaluation failed for argument = " + argument.
50       * 
51       * @param argument  the failing function argument 
52       * @param message  the exception message text
53       */
54      public FunctionEvaluationException(double argument, String message) {
55          this(argument, message, null);
56      }
57  
58      /***
59       * Construct an exception with the given argument, message and root cause.
60       * The message text of the exception will start with  <code>message</code>
61       * and be followed by " Evaluation failed for argument = " + argument.
62       * 
63       * @param argument  the failing function argument 
64       * @param message descriptive error message
65       * @param cause root cause.
66       */
67      public FunctionEvaluationException(double argument, String message, 
68              Throwable cause) {
69          super(message + " Evaluation failed for argument=" + argument, cause);
70          this.argument = argument;
71      }
72      
73      /***
74       * Returns the function argument that caused this exception.
75       * 
76       * @return  argument that caused function evaluation to fail
77       */
78      public double getArgument() {
79          return this.argument;
80      }
81  }