aboutsummaryrefslogtreecommitdiffstats
path: root/yt/cpp/mapreduce/interface
diff options
context:
space:
mode:
authorAlexander Smirnov <alex@ydb.tech>2024-11-20 11:14:58 +0000
committerAlexander Smirnov <alex@ydb.tech>2024-11-20 11:14:58 +0000
commit31773f157bf8164364649b5f470f52dece0a4317 (patch)
tree33d0f7eef45303ab68cf08ab381ce5e5e36c5240 /yt/cpp/mapreduce/interface
parent2c7938962d8689e175574fc1e817c05049f27905 (diff)
parenteff600952d5dfe17942f38f510a8ac2b203bb3a5 (diff)
downloadydb-31773f157bf8164364649b5f470f52dece0a4317.tar.gz
Merge branch 'rightlib' into mergelibs-241120-1113
Diffstat (limited to 'yt/cpp/mapreduce/interface')
-rw-r--r--yt/cpp/mapreduce/interface/errors.cpp24
-rw-r--r--yt/cpp/mapreduce/interface/errors.h19
2 files changed, 25 insertions, 18 deletions
diff --git a/yt/cpp/mapreduce/interface/errors.cpp b/yt/cpp/mapreduce/interface/errors.cpp
index ef3d2db4a3..0819c8ca56 100644
--- a/yt/cpp/mapreduce/interface/errors.cpp
+++ b/yt/cpp/mapreduce/interface/errors.cpp
@@ -20,20 +20,11 @@ using namespace NJson;
static void WriteErrorDescription(const TYtError& error, IOutputStream* out)
{
- (*out) << '\'' << error.GetMessage() << '\'';
+ (*out) << error.GetMessage();
const auto& innerErrorList = error.InnerErrors();
if (!innerErrorList.empty()) {
- (*out) << " { ";
- bool first = true;
- for (const auto& innerError : innerErrorList) {
- if (first) {
- first = false;
- } else {
- (*out) << " ; ";
- }
- WriteErrorDescription(innerError, out);
- }
- (*out) << " }";
+ (*out) << ": ";
+ WriteErrorDescription(innerErrorList[0], out);
}
}
@@ -118,9 +109,11 @@ TYtError::TYtError(const TString& message)
, Message_(message)
{ }
-TYtError::TYtError(int code, const TString& message)
+TYtError::TYtError(int code, TString message, TVector<TYtError> innerError, TNode::TMapType attributes)
: Code_(code)
, Message_(message)
+ , InnerErrors_(innerError)
+ , Attributes_(attributes)
{ }
TYtError::TYtError(const TJsonValue& value)
@@ -396,6 +389,11 @@ void TErrorResponse::Setup()
*this << Error_.FullDescription();
}
+TTransportError::TTransportError(TYtError error)
+{
+ *this << error.FullDescription();
+}
+
////////////////////////////////////////////////////////////////////////////////
TOperationFailedError::TOperationFailedError(
diff --git a/yt/cpp/mapreduce/interface/errors.h b/yt/cpp/mapreduce/interface/errors.h
index afad58ed72..1311dbcf3d 100644
--- a/yt/cpp/mapreduce/interface/errors.h
+++ b/yt/cpp/mapreduce/interface/errors.h
@@ -6,14 +6,14 @@
/// Errors and exceptions emitted by library.
#include "fwd.h"
-#include "common.h"
#include <library/cpp/yson/node/node.h>
#include <util/generic/bt_exception.h>
-#include <util/generic/yexception.h>
+#include <util/generic/guid.h>
#include <util/generic/string.h>
#include <util/generic/vector.h>
+#include <util/generic/yexception.h>
namespace NJson {
class TJsonValue;
@@ -67,8 +67,8 @@ public:
/// Constructs error with NYT::NClusterErrorCodes::Generic code and given message.
explicit TYtError(const TString& message);
- /// Constructs error with given code and given message.
- TYtError(int code, const TString& message);
+ /// Constructs error from given parameters.
+ TYtError(int code, TString message, TVector<TYtError> inner = {}, TNode::TMapType attributes = {});
/// Construct error from json representation.
TYtError(const ::NJson::TJsonValue& value);
@@ -158,7 +158,6 @@ class TErrorResponse
{
public:
TErrorResponse(int httpCode, const TString& requestId);
- TErrorResponse(int httpCode, TYtError error);
/// Get error object returned by server.
const TYtError& GetError() const;
@@ -222,6 +221,16 @@ private:
////////////////////////////////////////////////////////////////////////////////
+/// @brief System error indicating that response from server cannot be received
+class TTransportError
+ : public yexception
+{
+public:
+ explicit TTransportError(TYtError error);
+};
+
+////////////////////////////////////////////////////////////////////////////////
+
/// Info about failed jobs.
///
/// @see NYT::TOperationFailedError