@@ -134,7 +134,10 @@ void ListenAndServOp::RunSyncLoop(
134134 auto optimize_blocks =
135135 Attr<std::vector<framework::BlockDesc *>>(kOptimizeBlocks );
136136 PADDLE_ENFORCE_GE (num_blocks, 2 ,
137- " server program should have at least 2 blocks" );
137+ platform::errors::PreconditionNotMet (
138+ " Invalid number of blocks in server program. Expected "
139+ " equal or greater than 2. Recieved %zu" ,
140+ num_blocks));
138141
139142 // Prepare all the server block
140143 std::vector<int > optimize_blocks_list;
@@ -218,7 +221,8 @@ void ListenAndServOp::ResetReceivedVars(framework::Scope *recv_scope,
218221 VLOG (3 ) << " reset sparse var: " << varname;
219222 var->GetMutable <framework::SelectedRows>()->mutable_rows ()->clear ();
220223 } else {
221- PADDLE_THROW (" The type of sparse var should be SelectedRows" );
224+ PADDLE_THROW (platform::errors::PreconditionNotMet (
225+ " The type of sparse var should be SelectedRows" ));
222226 }
223227 }
224228 if (UNLIKELY (reset_all)) {
@@ -235,7 +239,8 @@ void ListenAndServOp::ResetReceivedVars(framework::Scope *recv_scope,
235239 math::set_constant (*dev_ctx, var->GetMutable <framework::Tensor>(),
236240 static_cast <float >(0 ));
237241 } else {
238- PADDLE_THROW (" The type of dense var should be in [LoDTensor, Tensor]" );
242+ PADDLE_THROW (platform::errors::PreconditionNotMet (
243+ " The type of dense var should be in [LoDTensor, Tensor]" ));
239244 }
240245 }
241246 }
@@ -254,8 +259,15 @@ void ListenAndServOp::RunAsyncLoop(framework::Executor *executor,
254259 std::vector<std::string> pieces;
255260 split (grad_and_id, ' :' , &pieces);
256261 VLOG (3 ) << " after split, key = " << pieces[0 ] << " , id=" << pieces[1 ];
257- PADDLE_ENFORCE_EQ (pieces.size (), 2 );
258- PADDLE_ENFORCE_EQ (out_map->count (pieces[0 ]), 0 );
262+ PADDLE_ENFORCE_EQ (pieces.size (), 2 ,
263+ platform::errors::PreconditionNotMet (
264+ " Invalid format of grad_and_id argument. "
265+ " Expected \" grad:block_id\" . Recieved %s" ,
266+ grad_and_id.c_str ()));
267+ PADDLE_ENFORCE_EQ (out_map->count (pieces[0 ]), 0 ,
268+ platform::errors::AlreadyExists (
269+ " The gradient name %s has already existed in out_map" ,
270+ pieces[0 ].c_str ()));
259271
260272 int block_id = std::stoi (pieces[1 ]);
261273 (*out_map)[pieces[0 ]] = block_id;
@@ -267,7 +279,10 @@ void ListenAndServOp::RunAsyncLoop(framework::Executor *executor,
267279
268280 size_t num_blocks = program->Size ();
269281 PADDLE_ENFORCE_GE (num_blocks, 2 ,
270- " server program should have at least 2 blocks" );
282+ platform::errors::PreconditionNotMet (
283+ " Invalid number of blocks in server program. Expected "
284+ " equal or greater than 2. Recieved %zu" ,
285+ num_blocks));
271286 std::vector<int > block_list;
272287 for (size_t blkid = 1 ; blkid < num_blocks; ++blkid) {
273288 block_list.push_back (blkid);
@@ -342,9 +357,9 @@ void ListenAndServOp::CacheVarsType(const std::vector<std::string> &varnames,
342357 var->IsType <framework::Tensor>()) {
343358 dense_vars_.push_back (varname);
344359 } else {
345- PADDLE_THROW (
360+ PADDLE_THROW (platform::errors::PreconditionNotMet (
346361 " The type of received var should be in [SelectedRows, LoDTensor, "
347- " Tensor]." );
362+ " Tensor]." )) ;
348363 }
349364 }
350365}
@@ -450,7 +465,12 @@ void ListenAndServOp::RunImpl(const framework::Scope &scope,
450465 split (prefetch_var_name_and_id, ' :' , &pieces);
451466 VLOG (3 ) << " after split, prefetch_var = " << pieces[0 ]
452467 << " , id=" << pieces[1 ];
453- PADDLE_ENFORCE_EQ (pieces.size (), 2 );
468+ PADDLE_ENFORCE_EQ (
469+ pieces.size (), 2 ,
470+ platform::errors::PreconditionNotMet (
471+ " Invalid format of prefetch_var_name_and_id argument. "
472+ " Expected \" xxx:xxx\" . Recieved %s" ,
473+ prefetch_var_name_and_id.c_str ()));
454474
455475 int block_id = std::stoi (pieces[1 ]);
456476 prefetch_block_id_list.push_back (block_id);
@@ -476,7 +496,12 @@ void ListenAndServOp::RunImpl(const framework::Scope &scope,
476496 sparse_grad_name_to_param_name_str) {
477497 std::vector<std::string> pieces;
478498 split (sparse_grad_name_and_param_name, ' :' , &pieces);
479- PADDLE_ENFORCE_EQ (pieces.size (), 2 );
499+ PADDLE_ENFORCE_EQ (
500+ pieces.size (), 2 ,
501+ platform::errors::PreconditionNotMet (
502+ " Invalid format of sparse_grad_name_and_param_name argument. "
503+ " Expected \" xxx:xxx\" . Recieved %s" ,
504+ sparse_grad_name_and_param_name.c_str ()));
480505 VLOG (3 ) << " after split, sparse_grad_name = " << pieces[0 ]
481506 << " , param_name = " << pieces[1 ];
482507 sparse_grad_name_to_param_name[pieces[0 ]] = pieces[1 ];
0 commit comments