• Добре дошли на страниците на mebelistite.com! Приятно сърфиранe!
  • Sys.Admin - компютри, лаптопи, принтери, сервиз

Предотвратяване на грешки

  • Автор на темата code
  • Започната на

code

Редовни
Регистриран
14/3/16
Постове
32
Резултат от реакция
17
Местоположение
Някъде
При програмите много често се получава така, че част от размерите / числените стойности, които се използват от определени команди на езика за програмиране не са известни първоначално, а се изчисляват автоматизирано в хода на изпълнението на програмата.
Така например команда от вида:
Код:
ВЕРТИКАЛА(i)=j
може да върне грешка при различни ситуации, а именно:
i не е подходящо, т. е. не е цяло положително число.
j не е подходящо, т. е. не е реално положително число.
i е извън размера, т. е. за моментно съставената мрежа нямаме колона с номер "i" (имаме по-малко от с колони).
j е извън размера, т. е. j е по-голямо или равно на ширината на колона с номер i.
При всяка от ситуациите операция по добавяне на вертикала в мрежата няма да се извърши, а програмата ще прекрати изпълнението си със съобщение за грешка.

Грешките не са хубаво нещо, защото се появяват системно и нямат никаква представителност. Те са предназначени да са понятни само за програмиста, съставил програмата, но не и за всички ползватели на вече направената програма.

Предотвратяването на грешките може да стане по два начина:
1. Да се правят проверки за коректност, преди да се извърши операцията.
2. Езикът да има механизми, чрез които да се "обработват" грешките.

При първият вариант грешките се избягват превантивно, но недостатък е това, че кодовете за проверка често правят логиката на изпълнението на програмата малко неясно. Допълнително писане на мястото, където трябва да представим чисто програмата.

Второто решение избягва описания по-горе проблем, защото при появата на грешка програмата не се прекратява, а се изпълнява отделна нейна част (по отношение на основната част от програмата), където се решава какви действия да се предприемат при възникналата ситуация. Затова никак не е чудно, че съвременните езици за програмиране притежават такава функционалност, а при някои от по-старите езици за програмиране (визирам точно езика за програмиране C) просто им е добавена такава функционалност.

Какви видови команди (на информатичен език се казва "синтаксис") и какви точно действия ще се изпълняват (на информатичен език се казва "семантика") при механизма за обработка грешки при нашата програма - въпросът остава отворен до момента в който бъде измислено и предложено някакво добро решение (и не задължително от мен).
 
Back
Горе