EasyHack, fdo#46808, Adapt UNO services to new style, Phase II
Stephan Bergmann
sbergman at redhat.com
Tue Apr 3 08:10:02 PDT 2012
On 04/03/2012 03:11 PM, Noel Grandin wrote:
> I'm working my way through the codebase, translating the easy stuff.
> What is the cleanest translation of this:
>
> Reference< graphic::XGraphicProvider > xGraphProv(
> xFact->createInstance( C2U("com.sun.star.graphic.GraphicProvider")),
> uno::UNO_QUERY_THROW );
>
> Normally I would use
>
> Reference< graphic::XGraphicProvider > xGraphProv(
> graphic::GraphicProvider::create(xContext) );
>
> But that doesn't throw an exception on error.
It does throw. The constructors are guaranteed to either return a
non-null reference or throw an exception (the default constructors all
throw com.sun.star.uno.DeploymentException, which is derived from
RuntimeException; explicit constructors can in principle also throw
other exceptions).
So you'd probably also come across code like
Reference<X> x(...createInstance...);
if (x.is()) { ... }
that you can simplify by using a constructor and removing the x.is() check.
Stephan
More information about the LibreOffice
mailing list