У меня дополнительный вопрос по поводу исключений.
Кто как пользуется методами 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)));
}