[
https://issues.apache.org/jira/browse/MATH-195?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12576706#action_12576706
]
Phil Steitz commented on MATH-195:
----------------------------------
Some comments
* org.apache.commons.math.linear.MatrixIndexException should really be a
subclass of
java.lang.IndexOutOfBoundsException.
I disagree. I see IndexOutOfBoundsException as one-dimensional - i.e.,
applying as the JDK javadoc says to arrays, strings, vectors.
* 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 is a little messy. InvalidMatrixException might best extend
IllegalArgumentException, since that is how it is used - when an imput matrix
does not satisfy the preconditions of a method, InvalidMatrixException is
thrown. I can see the argument the other more specialized exceptions above
should logically extend InvalidMatrixException, but I am not sure that making
these exceptions unchecked is a good idea. This raises the broader issue of
when should arguments that violate preconditions generate RTEs. Initially, we
were fairly consistent in throwing IllegalArgumentException for these. Might
be best to stick with that convention, in which case exceptions above should be
unchecked and I would agree then they should extend InvalidMatrixException.
> Inconsistencies in the Exception hierarchy
> ------------------------------------------
>
> Key: MATH-195
> URL: https://issues.apache.org/jira/browse/MATH-195
> Project: Commons Math
> Issue Type: Improvement
> Affects Versions: 1.1, 1.2, 2.0, Nightly Builds
> Reporter: Thomas Chust
> Assignee: Brent Worden
> Priority: Minor
> Fix For: 2.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.