[Libreoffice-commits] core.git: svl/source

Stephan Bergmann sbergman at redhat.com
Tue Feb 5 08:28:31 PST 2013


 svl/source/fsstor/fsfactory.cxx |   37 +++++++++++++++++++++----------------
 1 file changed, 21 insertions(+), 16 deletions(-)

New commits:
commit 47160402868eddbe876fbb392b35a8eaab1783af
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue Feb 5 17:27:57 2013 +0100

    Better error reporting
    
    Change-Id: I48bd329e1a29ce9cbf9840bf5e3cb48a92cb8073

diff --git a/svl/source/fsstor/fsfactory.cxx b/svl/source/fsstor/fsfactory.cxx
index e76c7a6..1ab8f69 100644
--- a/svl/source/fsstor/fsfactory.cxx
+++ b/svl/source/fsstor/fsfactory.cxx
@@ -108,8 +108,11 @@ uno::Reference< uno::XInterface > SAL_CALL FSStorageFactory::createInstanceWithA
     {
         if( !( aArguments[1] >>= nStorageMode ) )
         {
-            OSL_FAIL( "Wrong second argument!\n" );
-            throw uno::Exception(); // TODO: Illegal argument
+            throw lang::IllegalArgumentException(
+                ("second argument to css.embed.FileSystemStorageFactory."
+                 "createInstanceWithArguments must be a"
+                 " css.embed.ElementModes"),
+                static_cast< OWeakObject * >(this), -1);
         }
         // it's allways possible to read written storage in this implementation
         nStorageMode |= embed::ElementModes::READ;
@@ -118,18 +121,13 @@ uno::Reference< uno::XInterface > SAL_CALL FSStorageFactory::createInstanceWithA
     // retrieve storage source URL
     ::rtl::OUString aURL;
 
-    if ( aArguments[0] >>= aURL )
+    if ( !( aArguments[0] >>= aURL ) || aURL.isEmpty() )
     {
-        if ( aURL.isEmpty() )
-        {
-            OSL_FAIL( "Empty URL is provided!\n" );
-            throw uno::Exception(); // TODO: illegal argument
-        }
-    }
-    else
-    {
-        OSL_FAIL( "Wrong first argument!\n" );
-        throw uno::Exception(); // TODO: Illegal argument
+        throw lang::IllegalArgumentException(
+            ("first argument to"
+             " css.embed.FileSystemStorageFactory.createInstanceWithArguments"
+             " must be a (non-empty) URL"),
+            static_cast< OWeakObject * >(this), -1);
     }
 
     // allow to use other ucp's
@@ -138,14 +136,21 @@ uno::Reference< uno::XInterface > SAL_CALL FSStorageFactory::createInstanceWithA
       || aURL.equalsIgnoreAsciiCaseAsciiL(RTL_CONSTASCII_STRINGPARAM("vnd.sun.star.zip"))
       || ::utl::UCBContentHelper::IsDocument( aURL ) )
     {
-        OSL_FAIL( "File system storages can be based only on file URLs!\n" ); // ???
-        throw uno::Exception(); // TODO: illegal argument
+        throw lang::IllegalArgumentException(
+            ("URL \"" + aURL + "\" passed as first argument to"
+             " css.embed.FileSystemStorageFactory.createInstanceWithArguments"
+             " must be a file URL denoting a directory"),
+            static_cast< OWeakObject * >(this), -1);
     }
 
     if ( ( nStorageMode & embed::ElementModes::WRITE ) && !( nStorageMode & embed::ElementModes::NOCREATE ) )
         FSStorage::MakeFolderNoUI( aURL );
     else if ( !::utl::UCBContentHelper::IsFolder( aURL ) )
-        throw io::IOException(); // there is no such folder
+        throw io::IOException(
+            ("URL \"" + aURL + "\" passed to"
+             " css.embed.FileSystemStorageFactory.createInstanceWithArguments"
+             " does not denote an existing directory"),
+            static_cast< OWeakObject * >(this));
 
     ::ucbhelper::Content aResultContent(
         aURL, uno::Reference< ucb::XCommandEnvironment >(),


More information about the Libreoffice-commits mailing list