Показать сообщение отдельно
Старый 09.08.2021, 09:44   #5  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
У меня дополнительный вопрос по поводу исключений.
Кто как пользуется методами validate*? Стоит ли в этих методах вызывать исключения? или они только должны возвращать булевый тип и всё?
В принципе к check-методам в этом плане я довольно категоричен и использовать здесь исключения себе не позволяю.
Однако, что касается validate*, то здесь напрашиваются два шаблона. По факту приходится использовать оба. Первый - возвращает булевый тип и пишет в инфолог неудачные проверки обычно с помощью checkFailed или других check-методов.
Например:
X++:
if (custTable.validateWrite())
{
    custTable.insert();
}
Второй шаблон относится к вызывающим исключение. Возвращаемого значения обычно нет.
Пример:
X++:
public static void validateAdapterClass(classId integrationAdapterClassId)
{
    AifIntegrationAdapter integrationAdapter = AifAdapterManager::getIntegrationAdapter(integrationAdapterClassId);

    if (AifAdapter::exist(integrationAdapterClassId))
        throw error(strfmt("@SYS95137", classId2Name(integrationAdapterClassId)));
}
__________________
// no comments