aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libsolidity/interface/StandardCompiler.cpp14
-rw-r--r--libsolidity/interface/StandardCompiler.h2
2 files changed, 15 insertions, 1 deletions
diff --git a/libsolidity/interface/StandardCompiler.cpp b/libsolidity/interface/StandardCompiler.cpp
index acc5642b..7f3b7a58 100644
--- a/libsolidity/interface/StandardCompiler.cpp
+++ b/libsolidity/interface/StandardCompiler.cpp
@@ -29,7 +29,7 @@ using namespace std;
using namespace dev;
using namespace dev::solidity;
-Json::Value StandardCompiler::compile(Json::Value const& _input)
+Json::Value StandardCompiler::compileInternal(Json::Value const& _input)
{
m_compilerStack.reset(false);
@@ -139,6 +139,18 @@ Json::Value StandardCompiler::compile(Json::Value const& _input)
return output;
}
+Json::Value StandardCompiler::compile(Json::Value const& _input)
+{
+ try
+ {
+ return compileInternal(_input);
+ }
+ catch (...)
+ {
+ return "{\"errors\":\"[{\"type\":\"InternalCompilerError\",\"component\":\"general\",\"severity\":\"error\",\"message\":\"Internal exception in StandardCompiler::compilerInternal\"}]}";
+ }
+}
+
string StandardCompiler::compile(string const& _input)
{
Json::Value input;
diff --git a/libsolidity/interface/StandardCompiler.h b/libsolidity/interface/StandardCompiler.h
index c47e3c88..12d85aad 100644
--- a/libsolidity/interface/StandardCompiler.h
+++ b/libsolidity/interface/StandardCompiler.h
@@ -52,6 +52,8 @@ public:
std::string compile(std::string const& _input);
private:
+ Json::Value compileInternal(Json::Value const& _input);
+
CompilerStack m_compilerStack;
};