diff --git a/TranslateUI/TranslateBasic.cpp b/TranslateUI/TranslateBasic.cpp index db940ac..b5b4526 100644 --- a/TranslateUI/TranslateBasic.cpp +++ b/TranslateUI/TranslateBasic.cpp @@ -77,13 +77,23 @@ QHash> TranslateBasic::totalExtractors() c void TranslateBasic::addDelegate(std::shared_ptr inst) { - auto exist = std::count_if( + auto repeat_name_count = std::count_if( this->_custom_rule_types.begin(), this->_custom_rule_types.end(), [=](std::shared_ptr v) { return v->aliasName() == inst->aliasName(); }); - assert("RuleName不能重复" && !exist); + if(repeat_name_count) + throw new BaseException(u8"RuleName不能重复"); + + switch (inst->outType()) { + case DataType::LIST_COLLECTION: + case DataType::UNION_COMBINATE: + throw new BaseException(u8"不能接受的委托类型!"); + default: + break; + } + this->_custom_rule_types << inst; }