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
_______________________________________________
LibreOffice mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to