Проверить область определения арксинуса и обработать свою ошибку данных

Учебные задачи

Отношение 1,2 не может быть синусом действительного угла. Ошибка встроенной функции обрабатывается явно, а допустимые граничные значения считаются отдельно.

Где и как запускать

Полный серверный общий модуль своей учебной конфигурации. Только собственные числа и строки в памяти.

Подготовка

  1. В своей отдельной конфигурации УчебнаяКонфигурацияСинтаксиса создайте серверный общий модуль УчебныеФормулы с флагом Сервер. Вставьте полный модуль выбранного урока и вызовите ВыполнитьПример из серверной команды учебной обработки.

  2. Все числа, строки и URI создаются внутри примера. Нет запросов к базе, файлов, сетевых соединений или вычисления произвольного кода.

  3. Для первых запусков не меняйте данные. Затем меняйте один параметр за раз и сравнивайте объяснение с результатами проверок.

  4. Булево и тригонометрические функции в этих уроках не предназначены для вызова через COM-соединение. Кодирование строк выполняется на сервере.

  5. URI example.invalid только печатается и проверяется как строка; адрес не открывается. Эти BSL-примеры не запускались автоматически в 1С.

Процедура ВыполнитьПример() Экспорт
    Пи = ACos(-1);
    Граница = ASin(1);
    Сообщить(Граница > Пи / 2 - 0.000000001 И Граница < Пи / 2 + 0.000000001);
    ОшибкаОжидаема = Ложь;
    Попытка
        НеверныйУгол = ASin(1.2);
        Сообщить("Неожиданный результат неверного аргумента: " + Строка(НеверныйУгол));
    Исключение
        ОшибкаОжидаема = Истина;
        Сообщить("Собственное отношение 1,2 отклонено: аргумент ASin должен быть −1…1");
    КонецПопытки;
    Сообщить(ОшибкаОжидаема);
    Отношение = 1.2;
    Если Отношение < -1 ИЛИ Отношение > 1 Тогда
        Сообщить("Вторая попытка отклонена заранее, встроенная функция не вызывается");
    Иначе
        Сообщить(ACos(Отношение));
    КонецЕсли;
КонецПроцедуры

Разбор по шагам

  1. Посчитать допустимый граничный ASin(1)=Пи/2 и проверить с численным допуском.

  2. Один раз вызвать ASin(1.2) в собственном блоке Попытка: нужен учебный пример исключения.

  3. В исключении вывести понятное сообщение и отметить ожидаемый отказ, не скрывать ошибку пустым обработчиком.

  4. Показать предпочтительный путь: проверить диапазон до ACos и не вызывать функцию для 1,2.

Как проверить результат

  1. Две булевые проверки Истина, сообщение об ожидаемой ошибке ASin и сообщение о предварительном отказе ACos.

  2. После перехваченной ошибки модуль продолжает работу.

Ожидаемый результат

Полный опыт обработки неверных собственных данных и проверки диапазона до вычисления.

На что обратить внимание

  1. Нельзя считать исключение признаком нулевого угла: угол не получен.

  2. Не подменяйте неправильное отношение единицей без объяснения смысла данных.

  3. В обработке реальных данных отделяйте погрешность измерения от явно неверных значений.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.