diff options
author | chriseth <chris@ethereum.org> | 2017-07-13 22:56:03 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-13 22:56:03 +0800 |
commit | d1c3ecc94a4c0b36ccfd310a0ccf15e9e9b4a8dd (patch) | |
tree | 155c3b7479401e114faa7d2c6bccdfcb7ead866c /libdevcore/Exceptions.h | |
parent | 32247fd02800f5fce3a5dd2e8f186a5882447d0d (diff) | |
parent | 09e821619e20943af7bbd61ad10fb5ae40d2558c (diff) | |
download | dexon-solidity-d1c3ecc94a4c0b36ccfd310a0ccf15e9e9b4a8dd.tar dexon-solidity-d1c3ecc94a4c0b36ccfd310a0ccf15e9e9b4a8dd.tar.gz dexon-solidity-d1c3ecc94a4c0b36ccfd310a0ccf15e9e9b4a8dd.tar.bz2 dexon-solidity-d1c3ecc94a4c0b36ccfd310a0ccf15e9e9b4a8dd.tar.lz dexon-solidity-d1c3ecc94a4c0b36ccfd310a0ccf15e9e9b4a8dd.tar.xz dexon-solidity-d1c3ecc94a4c0b36ccfd310a0ccf15e9e9b4a8dd.tar.zst dexon-solidity-d1c3ecc94a4c0b36ccfd310a0ccf15e9e9b4a8dd.zip |
Merge pull request #2567 from ethereum/refactorExceptions
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; } } |