diff options
author | chriseth <chris@ethereum.org> | 2017-07-13 17:33:06 +0800 |
---|---|---|
committer | chriseth <chris@ethereum.org> | 2017-07-13 17:34:03 +0800 |
commit | 09e821619e20943af7bbd61ad10fb5ae40d2558c (patch) | |
tree | af7152e9af75b84573668424f7eee1a915a7c263 /libdevcore/Exceptions.h | |
parent | 757c500bda9a32cccc86e1ab24da31a99c0e6eac (diff) | |
download | dexon-solidity-09e821619e20943af7bbd61ad10fb5ae40d2558c.tar.gz dexon-solidity-09e821619e20943af7bbd61ad10fb5ae40d2558c.tar.zst dexon-solidity-09e821619e20943af7bbd61ad10fb5ae40d2558c.zip |
Refactor exceptions and provide comment function.
Diffstat (limited to 'libdevcore/Exceptions.h')
-rw-r--r-- | libdevcore/Exceptions.h | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/libdevcore/Exceptions.h b/libdevcore/Exceptions.h index 4817e9e3..a3e638bf 100644 --- a/libdevcore/Exceptions.h +++ b/libdevcore/Exceptions.h @@ -14,23 +14,16 @@ You should have received a copy of the GNU General Public License along with solidity. If not, see <http://www.gnu.org/licenses/>. */ -/** @file Exceptions.h - * @author Gav Wood <i@gavwood.com> - * @date 2014 - */ #pragma once -#include <exception> -#include <string> #include <boost/exception/exception.hpp> #include <boost/exception/info.hpp> #include <boost/exception/info_tuple.hpp> #include <boost/exception/diagnostic_information.hpp> -#include <boost/throw_exception.hpp> -#include <boost/tuple/tuple.hpp> -#include "CommonData.h" -#include "FixedHash.h" + +#include <exception> +#include <string> namespace dev { @@ -38,14 +31,15 @@ namespace dev /// Base class for all exceptions. struct Exception: virtual std::exception, virtual boost::exception { - Exception(std::string _message = std::string()): m_message(std::move(_message)) {} - const char* what() const noexcept override { return m_message.empty() ? std::exception::what() : m_message.c_str(); } + const char* what() const noexcept override; /// @returns "FileName:LineNumber" referring to the point where the exception was thrown. std::string lineInfo() const; + /// @returns the errinfo_comment of this exception. + std::string const* comment() const noexcept; + private: - std::string m_message; }; #define DEV_SIMPLE_EXCEPTION(X) struct X: virtual Exception { const char* what() const noexcept override { return #X; } } |