[ 
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.

Reply via email to