Hi Phil, 2012/9/10 Phil Steitz <phil.ste...@gmail.com>: > On 9/10/12 11:47 AM, Sébastien Brisard wrote: >> Hi >> What should I do there? >> I'm trying to work on MATH-854. It turns out that FieldElement<T>.add >> throws a NAE. Should I catch it below, and rethrow it with a more >> detailed message (including the entry index)? > > IMO, yes. > > I would also check v itself and add to the javadoc contract that IAE > is thrown if v is null. This is not consistently done in [math], > though, and rarely in the linear package, so I am OK just letting > the NPE propagate if v is null. It is a little awkward that v > itself being null leads to NPE, but a component of it null leads to > MIAE. > I agree with you, it feels weird. I found a better way: we need to make sure that entries of FieldVector can *never* be null. This means checking for null in setters, constructors and the likes. What do you think? Sébastien > Phil >> >> Best, >> Sébastien >> >> >> /** {@inheritDoc} */ >> public FieldVector<T> add(FieldVector<T> v) >> throws DimensionMismatchException { >> try { >> return add((ArrayFieldVector<T>) v); >> } catch (ClassCastException cce) { >> checkVectorDimensions(v); >> T[] out = buildArray(data.length); >> for (int i = 0; i < data.length; i++) { >> out[i] = data[i].add(v.getEntry(i)); >> // SHOULD I CATCH NAE HERE? >> } >> return new ArrayFieldVector<T>(field, out, false); >> } >> }
--------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org