Re[17]: Грамотность
От: Mamut Швеция http://dmitriid.com
Дата: 11.11.04 09:54
Оценка:
Код полугипотетический, бо синтаксиса я уже не помню.


IMPORT MathCalc;

MODULE MathTools;
    PROCEDURE ReturnComplexMathematicalComputation*: INT;
    
    {* *}
    
    PROCEDURE ReturnComplexMathematicalComputation    
    VAR:
        i: INT;
    BEGIN
        i := 100 / MathCalc.CalcSum;
        RETURN i;
    END;
    
END MathTools.



MODULE MathCalc;
    PROCEDURE CalcSum*: INT;
    
    {* *}
    
    PROCEDURE CalcSum    
    VAR:
        i: INT;
        {* other vars *}
    BEGIN
        {* we accept data from external sources and compute it *}
        RETURN ResultingSum;
    END;
    
END MathTools.




Внимание, вопрос! Что произойдет, если MathCalc.CalcSum вернет 0? На этапе компиляции это отловить невозможно, так как данные получаются извне. Кривые руки программиста не поставили проверку на ноль в модуле MathTools, а модуль MathTools и его методы активно используются для представления (например) статистической информации в десяти разных представлениях в десятке различных модулей. Что произойдет? ИМХО, система встанет, причем вся.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>


dmitriid.comGitHubLinkedIn
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.