commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Phil Steitz (JIRA)" <j...@apache.org>
Subject [jira] Commented: (MATH-195) Inconsistencies in the Exception hierarchy
Date Sun, 09 Mar 2008 05:21:46 GMT

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


Mime
View raw message