As you may have noticed that , db4o is starting to throw runtime exception since version 6.2. It's taking shape now. Please have a look at the javadoc Db4oException, which is the root of all db4o runtime exception, you'll find following paragraph. It's nice, isn't it?
com.db4o.ext
Class Db4oException
java.lang.Object
extended by java.lang.Throwable
extended by java.lang.Exception
extended by java.lang.RuntimeException
extended by com.db4o.foundation.ChainedRuntimeException
extended by com.db4o.ext.Db4oException
All Implemented Interfaces:
java.io.Serializable
Direct Known Subclasses:
BackupInProgressException, ConstraintViolationException, DatabaseClosedException, DatabaseFileLockedException, DatabaseMaximumSizeReachedException, DatabaseReadOnlyException, Db4oIOException, GlobalOnlyConfigException, IncompatibleFileFormatException, InvalidIDException, InvalidPasswordException, OldFormatException, ReflectException
Most of them are self-descriptive, and clear enough so that you even don't need to lookup them in the document. But I still recommend you to have a look at ObjectContainer, which is the most important interface for db4o. Here is the javadoc for ObjectContainer#delete():
delete
void delete(java.lang.Object obj) throws Db4oIOException,
DatabaseClosedException,
DatabaseReadOnlyException
<snip>
Parameters:
obj - the object to be deleted from the ObjectContainer.
Throws:
Db4oIOException - I/O operation failed or was unexpectedly interrupted.
DatabaseClosedException - db4o database file was closed or failed to open.
DatabaseReadOnlyException - database was configured as read-only.
We're still continuously improving the exception hiearachy. Any feedbacks/suggestions are very appreciated!