enhance err_msg, test=develop (#23714)

revert-23830-2.0-beta
Zeng Jinle 5 years ago committed by GitHub
parent a63bcf9ae7
commit 54d3b5a1eb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -42,13 +42,25 @@ class OpBase {
~OpBase() { VLOG(3) << "Destruct Op: " << Type(); }
const std::string& Type() const { return op_->Type(); }
const std::string& Type() const {
return op_ ? op_->Type() : UnknownOpType();
}
const framework::AttributeMap& Attrs() const { return attrs_; }
const framework::OpInfo& Info() const { return op_->Info(); }
const framework::OpInfo& Info() const {
PADDLE_ENFORCE_NOT_NULL(op_, platform::errors::PreconditionNotMet(
"OpBase::Info() should be called after "
"OpBase::SetType() is called"));
return op_->Info();
}
const framework::OperatorBase& InnerOp() const { return *op_; }
const framework::OperatorBase& InnerOp() const {
PADDLE_ENFORCE_NOT_NULL(op_, platform::errors::PreconditionNotMet(
"OpBase::InnerOp() should be called after "
"OpBase::SetType() is called"));
return *op_;
}
void ClearBackwardTrace();
@ -63,7 +75,7 @@ class OpBase {
void SetType(const std::string& type);
void CheckAttrs() {
auto& info = op_->Info();
auto& info = Info();
if (info.Checker() != nullptr) {
info.Checker()->Check(&attrs_, true);
}
@ -150,6 +162,12 @@ class OpBase {
const framework::AttributeMap& attrs,
const platform::Place& place);
private:
static const std::string& UnknownOpType() {
static std::string kUnknownOpType{"unknown"};
return kUnknownOpType;
}
private:
NameVarMap<VariableWrapper> ins_;
NameVarMap<VariableWrapper> outs_;

@ -271,6 +271,15 @@ TEST(test_layer, test_dygraph_infershape_context) {
ASSERT_EQ(have_z, false);
}
TEST(test_layer, test_inner_op_not_inited) {
OpBase op;
std::string kUnknown = "unknown";
ASSERT_EQ(op.Type(), kUnknown);
ASSERT_THROW(op.Info(), platform::EnforceNotMet);
ASSERT_THROW(op.InnerOp(), platform::EnforceNotMet);
ASSERT_THROW(op.CheckAttrs(), platform::EnforceNotMet);
}
} // namespace imperative
} // namespace paddle

Loading…
Cancel
Save