COMPMID-415: Use printer for errors

Change-Id: Idc2fc1dfd5706580d15c2bbfffe2830d41075a4b
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/82908
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
diff --git a/framework/Exceptions.h b/framework/Exceptions.h
index de61760..edb0ed9 100644
--- a/framework/Exceptions.h
+++ b/framework/Exceptions.h
@@ -71,10 +71,11 @@
 
     /** Construct error with severity.
      *
-     * @param[in] msg   Error message.
-     * @param[in] level Severity level.
+     * @param[in] msg     Error message.
+     * @param[in] level   Severity level.
+     * @param[in] context Context.
      */
-    TestError(const std::string &msg, LogLevel level);
+    TestError(const std::string &msg, LogLevel level, std::string context = "");
 
     /** Severity of the error.
      *
@@ -82,8 +83,13 @@
      */
     LogLevel level() const;
 
+    const char *what() const noexcept override;
+
 private:
-    LogLevel _level{ LogLevel::ERRORS };
+    LogLevel    _level{ LogLevel::ERRORS };
+    std::string _msg{};
+    std::string _context{};
+    std::string _combined{};
 };
 } // namespace framework
 } // namespace test