Le 18/02/16 06:49, Emmanuel Lécharny a écrit :
> Hi,
>
> yesterday, we had a quick chat with Radovan about the fact that some
> constructors are throwing an Exception, like the DefaultSchemaManager().
>
> Actually, all of the 4 DefaultSchemaManager throw an Exception, but we
> can easily get rid of the 'throw' for 3 of them. The question is what
> should we do with the default constructor ? The thrown Exception is the
> one thrown when we intialise it :
>
>     public DefaultSchemaManager() throws Exception
>     {
>         ...
>         loadAllEnabled();  <---- This is throwing an Exception
>     }
>
> It makes little sense to thrown an exception in this case : the default
> schema is not going to be altered in this very case (the default
> constructor) because it's part of the API as a Jar file we provide. If
> this jar file is incorrect, then the full API is incorrect.
>
> I would suggest we stop throwing an Exception, and catch the one thrown
> by loadAllEnabled() in the constructor, logging some message (which will
> never happend anyway).
>
> There is also a second change I'd like to do : everywhere we throw an
> Exception in the API, we should at least throw a LdapException instead.
>
> wdyt ?
Note that the problem also hits the SchemaLoader classes. Although it's
harder to get rid of the constructor's exceptions in this case, we can
at least make the methods and constructors throw meaningfull exceptions,
like LdapException and IOException instead of the generic Exception...

Reply via email to