[ https://issues.apache.org/jira/browse/MATH-487?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Luc Maisonobe resolved MATH-487. -------------------------------- Resolution: Fixed Fix Version/s: (was: 2.2) Fixed in subversion repository as of r1177986. The checked exception has been replaced by the unchecked one that lies in the exception package. > Deprecate "ConvergenceException" in MATH_2_X and remove it in trunk > ------------------------------------------------------------------- > > Key: MATH-487 > URL: https://issues.apache.org/jira/browse/MATH-487 > Project: Commons Math > Issue Type: Improvement > Reporter: Gilles > Priority: Minor > Fix For: 3.0 > > > The checked "ConvergenceException" should be deprecated. > An example usage is in class {{ContinuedFraction}} (package {{util}}), at > line 153: > {noformat} > if (scale <= 0) { // Can't scale > throw new > ConvergenceException(LocalizedFormats.CONTINUED_FRACTION_INFINITY_DIVERGENCE, > x); > } > {noformat} > I think that it should be replaced by a more specific (and unchecked) > exception that reflects the exact low-level problem: > {noformat} > if (scale <= 0) { // Can't scale > throw new NotStrictlypositiveException(scale); > } > {noformat} > A few lines below that, there is: > {noformat} > if (infinite) { > // Scaling failed > throw new > ConvergenceException(LocalizedFormats.CONTINUED_FRACTION_INFINITY_DIVERGENCE, > x); > } > {noformat} > So it seems that it is not necessary to throw an exception at the place where > the test on "scale" fails; instead we could have: > {noformat} > infinite = true; > if (scale <= 0) { // Can't scale > break; > } > {noformat} > and let the check on "infinite" throw the exception: > {noformat} > if (infinite) { > // Scaling failed > throw new > NotFiniteNumberException(LocalizedFormats.CONTINUED_FRACTION_DIVERGENCE, > Double.POSITIVE_INFINITY, x); > } > {noformat} > As shown in the above excerpt, we could also replace two {{enum}}: > * CONTINUED_FRACTION_INFINITY_DIVERGENCE > * CONTINUED_FRACTION_NAN_DIVERGENCE > with a single one: > * CONTINUED_FRACTION_DIVERGENCE > because the other bit of information (infinity vs NaN) is already given by > the first parameter of the message. > What do you think of these changes? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira