From b075256d8dcdd00874edb599a060e8658153faa0 Mon Sep 17 00:00:00 2001 From: Vincent Richard Date: Thu, 21 Nov 2013 23:07:50 +0100 Subject: Do not throw exception for normal code flow. --- src/exception.cpp | 14 -------------- src/net/serviceFactory.cpp | 2 +- src/net/session.cpp | 16 ++++++++-------- 3 files changed, 9 insertions(+), 23 deletions(-) (limited to 'src') diff --git a/src/exception.cpp b/src/exception.cpp index bf37de00..3ea6e25a 100644 --- a/src/exception.cpp +++ b/src/exception.cpp @@ -428,20 +428,6 @@ exception* unsupported_option::clone() const { return new unsupported_option(*th const char* unsupported_option::name() const throw() { return "unsupported_option"; } -// -// no_service_available -// - -no_service_available::~no_service_available() throw() {} -no_service_available::no_service_available(const string& proto, const exception& other) - : net_exception(proto.empty() - ? "No service available for this protocol." - : "No service available for this protocol: '" + proto + "'.", other) {} - -exception* no_service_available::clone() const { return new no_service_available(*this); } -const char* no_service_available::name() const throw() { return "no_service_available"; } - - // // illegal_state // diff --git a/src/net/serviceFactory.cpp b/src/net/serviceFactory.cpp index a16098ce..98aee646 100644 --- a/src/net/serviceFactory.cpp +++ b/src/net/serviceFactory.cpp @@ -101,7 +101,7 @@ shared_ptr serviceFactory::getServiceB return (*it); } - throw exceptions::no_service_available(name); + return null; } diff --git a/src/net/session.cpp b/src/net/session.cpp index fcc5dd12..36b9f2c3 100644 --- a/src/net/session.cpp +++ b/src/net/session.cpp @@ -74,8 +74,8 @@ shared_ptr session::getTransport shared_ptr sess(dynamicCast (shared_from_this())); shared_ptr sv = serviceFactory::getInstance()->create(sess, protocol, auth); - if (sv->getType() != service::TYPE_TRANSPORT) - throw exceptions::no_service_available(); + if (!sv || sv->getType() != service::TYPE_TRANSPORT) + return null; return dynamicCast (sv); } @@ -87,8 +87,8 @@ shared_ptr session::getTransport shared_ptr sess(dynamicCast (shared_from_this())); shared_ptr sv = serviceFactory::getInstance()->create(sess, url, auth); - if (sv->getType() != service::TYPE_TRANSPORT) - throw exceptions::no_service_available(); + if (!sv || sv->getType() != service::TYPE_TRANSPORT) + return null; return dynamicCast (sv); } @@ -106,8 +106,8 @@ shared_ptr session::getStore shared_ptr sess(dynamicCast (shared_from_this())); shared_ptr sv = serviceFactory::getInstance()->create(sess, protocol, auth); - if (sv->getType() != service::TYPE_STORE) - throw exceptions::no_service_available(); + if (!sv || sv->getType() != service::TYPE_STORE) + return null; return dynamicCast (sv); } @@ -119,8 +119,8 @@ shared_ptr session::getStore shared_ptr sess(dynamicCast (shared_from_this())); shared_ptr sv = serviceFactory::getInstance()->create(sess, url, auth); - if (sv->getType() != service::TYPE_STORE) - throw exceptions::no_service_available(); + if (!sv || sv->getType() != service::TYPE_STORE) + return null; return dynamicCast (sv); } -- cgit