On Aug 3, 2007, at 7:18 PM, Kevin Menard wrote:

I imagine throwing
CayenneException is preferred, but given that it's a checked exception,
that could mean rewriting interfaces.

We certainly DO NOT want every method in Cayenne to throw checked exceptions. Then it will be as "usable" as JDBC :-) CayenneRuntimeException (and its two specialized subclasses - ExpressionException and EJBQLException) and IllegalArgumentException are two of my favorites.

For things like argument checking in the user-facing API, IllegalArgumentException seems more appropriate than CayenneRuntimeException.

Also I don't think we have too many methods in Cayenne (if any at all) that throw checked CayenneException, requiring a try/catch. It is always CayenneRuntimeException.

I'm a fan of throwing unchecked exceptions if we can't do anything about the problem anyway.

Yep.

Also, should we be adding tests to check the exceptions are actually
thrown and pair them up with fail() calls? Or, has the approach been to just introduce the exception and just make sure the existing test suite
passes?

It's been the later. But also because everybody wants to cut down time writing unit tests, not because of some principle :-)

Andrus


Reply via email to