summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xcpp/include/IceUtil/Options.h2
-rwxr-xr-xcpp/src/IceUtil/Options.cpp22
2 files changed, 22 insertions, 2 deletions
diff --git a/cpp/include/IceUtil/Options.h b/cpp/include/IceUtil/Options.h
index d320d9aa9e2..2e1f0b2ba18 100755
--- a/cpp/include/IceUtil/Options.h
+++ b/cpp/include/IceUtil/Options.h
@@ -29,6 +29,7 @@ public:
APIException(const char*, int, const ::std::string&);
virtual ~APIException() throw();
virtual ::std::string ice_name() const;
+ virtual void ice_print(std::ostream&) const;
virtual ::IceUtil::Exception* ice_clone() const;
virtual void ice_throw() const;
@@ -48,6 +49,7 @@ public:
BadOptException(const char*, int, const ::std::string&);
virtual ~BadOptException() throw();
virtual ::std::string ice_name() const;
+ virtual void ice_print(std::ostream&) const;
virtual ::IceUtil::Exception* ice_clone() const;
virtual void ice_throw() const;
diff --git a/cpp/src/IceUtil/Options.cpp b/cpp/src/IceUtil/Options.cpp
index 0e9fef64713..236fdaf2d24 100755
--- a/cpp/src/IceUtil/Options.cpp
+++ b/cpp/src/IceUtil/Options.cpp
@@ -30,6 +30,16 @@ IceUtil::APIException::ice_name() const
return _name;
}
+void
+IceUtil::APIException::ice_print(ostream& out) const
+{
+ Exception::ice_print(out);
+ if(!reason.empty())
+ {
+ out << ": " << reason;
+ }
+}
+
IceUtil::Exception*
IceUtil::APIException::ice_clone() const
{
@@ -46,7 +56,6 @@ ostream&
IceUtil::operator<<(ostream& out, const IceUtil::APIException& ex)
{
ex.ice_print(out);
- out << ": " << ex.reason;
return out;
}
@@ -67,6 +76,16 @@ IceUtil::BadOptException::ice_name() const
return _name;
}
+void
+IceUtil::BadOptException::ice_print(ostream& out) const
+{
+ Exception::ice_print(out);
+ if(!reason.empty())
+ {
+ out << ": " << reason;
+ }
+}
+
IceUtil::Exception*
IceUtil::BadOptException::ice_clone() const
{
@@ -83,7 +102,6 @@ ostream&
IceUtil::operator<<(ostream& out, const IceUtil::BadOptException& ex)
{
ex.ice_print(out);
- out << ": " << ex.reason;
return out;
}