[ https://issues.apache.org/jira/browse/MATH195?page=com.atlassian.jira.plugin.system.issuetabpanels:commenttabpanel&focusedCommentId=12905077#action_12905077
]
Luc Maisonobe commented on MATH195:

FunctionEvaluationException is mainly an exception designed for users functions, its often
not an exception commonsmath creates by itself.
Numerous example are linked to solving a physical problem (say finding an energy level in
theoretical physics or finding a spacecraft orbit that best fir a set of observations in
a flight dynamics problem). These user functions may not be computable at some points and
the general mathematical algorithm cannot know it beforehand. So when user code encounters
a problem, he must be able to raise an exception and commonsmath must be able to stop in
this case.
Although since we currently do not have constrained optimization (except in the linear case),
we cannot prevent the general optimizing algorithm to wander outside of the user function
defining domain and hence violate users function precondition. So it would be difficult to
have a separate policy for preconditions and for other kinds of errors.
Changing FunctionEvaluatinException to unchecked may be a good move, but our algorithms should
document that these exceptions can arise if user code throws them.
> Inconsistencies in the Exception hierarchy
> 
>
> Key: MATH195
> URL: https://issues.apache.org/jira/browse/MATH195
> Project: Commons Math
> Issue Type: Improvement
> Affects Versions: 1.1, 1.2, 2.0, Nightly Builds
> Reporter: Thomas Chust
> Assignee: Gilles
> Priority: Minor
> Fix For: 3.0
>
> Original Estimate: 0.17h
> Remaining Estimate: 0.17h
>
> I think there are some inconsistencies in the hierarchy of exceptions used by the Commons
Math library which could easily be fixed:
>  org.apache.commons.math.linear.MatrixIndexException should really be a subclass of
> java.lang.IndexOutOfBoundsException.
>  Either org.apache.commons.math.linear.InvalidMatrixException should be checked or
> org.apache.commons.math.random.NotPositiveDefiniteMatrixException and
> org.apache.commons.math.geometry.NotARotationMatrixException should be unchecked,
but in any case the latter two
> should be subclasses of the former. An unchecked InvalidMatrixException should probably
be a subclass of
> java.lang.ArithmeticException while a checked InvalidMatrixException should be a
subclass of
> org.apache.commons.math.MathException.

This message is automatically generated by JIRA.

You can reply to this email to add a comment to the issue online.
