[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