Програмске грешке су недостаци у начину рада апликација. Обично се називају „грешкама“, па отуда и термин „отклањање грешака“.

Као програмер, проводићете пуно времена у поправљању грешака. Бројне грешке с којима ћете се сусрести су уобичајене, а њихово познавање ће вам у првом реду помоћи да их спречите.

Ево шта треба да знате о ове три врсте програмских грешака и како можете да се заштитите од њих:

1. Грешке при извршавању или извршавању

То су грешке које се јављају када се програм извршава (тј. Током извршавања). Они могу проузроковати да се програм не извршава правилно или се чак уопште не покреће.

Фаталне рунтиме грешке доводе до заустављања извршења програма, док оне који нису фаталне доводе до завршетка, али са нетачним резултатима.

Типична грешка у извршавању је грешка поделе са нулом. Подјела с нулом требала би дати бесконачан резултат, али нажалост, још увијек нисмо дошли до структуре података која може похранити ту количину података.

Према томе, подела са нулом доводи до аритметичког изузетка у Јава компајлеру.

2. Логичке грешке

Логичке грешке настају због погрешног образложења. Важно је напоменути да ове грешке нису нужно последица „грешке“ коју сте направили. Могу се догодити јер нисте узели у обзир одређени сценарио извршења.

Са њима је најтеже руковати. То је зато што је код са логичком грешком важећи програм на језику на којем је написан. Стога неће довести до грешке компајлера. Једино је питање што даје нетачне резултате.

Фатална логичка грешка довешће до заустављања извођења програма, док ће нефатална омогућити да се извршавање програма настави, али са нетачним резултатима.

Уобичајена логичка грешка је појединачна грешка. То се обично дешава када се наведе услов за наставак петље. Рецимо да желите да одштампате првих пет квадратних бројева.

Повезан: Најчешће грешке у програмирању и кодирању

Можда ћете на крају написати доњи код у петљу фор, која даје само прва четири таква броја.

за (инт к = 1; к <5; к ++) {Систем.оут.лн (к * к); }

Да бисте избегли такву грешку, уместо тога можете користити знак <=. Коришћење знака мање-или-једнако-је интуитивније и зато ћете имати мање шансе да помешате своје релационе операције.

Још једна уобичајена логичка грешка је изостављање обе заграде контролне изјаве, а тело испод чини блок кода који је под његовом контролом.

Погледајте пример испод. Проверава да ли је случајан број непаран или паран, а затим исписује излаз.

импорт јава.утил. Рандом;
јавни разред ОддЕвен {
јавна статичка воид главна (Стринг [] аргс) {
Рандом нумберГенератор = ново Рандом ();
инт рандомНумбер = нумберГенератор.нектИнт (10);
иф ((рандомНумбер% 2) == 0)
Систем.оут.принтлн ("Ево вашег срећног броја:" + рандомНумбер);
Систем.оут.принтлн ("Број" + рандомНумбер + "који сте добили је паран"); // ред 11
}
}

Ред за обавештења 11. Увек ће се извршити без обзира на то да ли је случајни број који имате паран. То би наравно било логично погрешно када је број који сте добили непаран.

Укључујући и једно и друго Систем.оут.принтлн изјаве између заграда {}, ово би избегло.

Повезан: Кораци развоја софтвера који би сви програмери требали знати

Још једна логичка грешка на коју треба обратити пажњу није пружање услова прекида петље. То ће резултирати бесконачном петљом и ваш програм никада неће завршити извршење.

3. Синтакса или грешке времена компајлирања

То су грешке настале услед кршења правила о језику Јава. Такође се називају грешкама у компилацији или времену компајлирања.

Ово су најлакше грешке за решавање, јер ће их ваш преводилац увек пријавити. Многи компајлери чак кажу и кажу вам у реду у вашем коду грешка.

Толеранција грешке

Практични начин решавања софтверских проблема је појачати толеранцију грешака, укључујући руковање изузецима. Можете користити покушај да ухватиш изјаве да би се ово постигло.

Наставити са извршавањем програма без обзира на изузетак ухваћен у улов блок, користите коначно изјава.

Синтакса је:

покушајте {// Блокирај за извршење ако нема проблема} 
цатцх (Изузетак е) {
// Блокирај за руковање пронађеним проблемима
} коначно {// Блокирање за извршење након улова
}

Погледајте пример кода испод:

импорт јава.утил. Рандом;
јавни разред РандомНумберс {
јавна статичка воид главна (Стринг [] аргс) {
Рандом нумберГенератор = ново Рандом ();
покушати{
фор (инт бројач = 10; бројач <= 100; бројач ++) {
инт рандомНумбер = нумберГенератор.нектИнт (10);
Систем.оут.принтлн (бројач / случајанБрој); } }
цатцх (Изузетак е) {
Систем.оут.принтлн („Наишла је подела на нулу!“);
}
коначно {
Систем.оут.принтлн ("Добијена је бесконачна вредност");}
}
}

Горњи програм генерише случајни број између нуле и 10, а затим користи тај број за поделу бројача између 10 и 100. Ако се наиђе на поделу са нулом, систем хвата грешку и приказује поруку.

Побољшајте кодирање

Добра је пракса да додајете коментаре у свој код. Ово ће вам помоћи да лако прочешљате датотеке када имате грешку. Један мали, али веома важан корак ка развоју јаких пракси кодирања.

Уз добру праксу кодирања, требало би да будете у могућности да избегнете уобичајене програмске грешке.

Емаил
Шта је кодирање и како функционише?

Збуњени сте око кодирања? Не разумете скриптирање? Ево шта треба да знате о блоковима програмирања.

Прочитајте следеће

Повезане теме
  • Програмирање
  • Јава
  • Савети за кодирање
О аутору
Јероме Давидсон (Објављено 14 чланака)

Јероме је писац особља у МакеУсеОф-у. Обрађује чланке о Програмирању и Линуку. Такође је крипто ентузијаст и увек прати крипто индустрију.

Више од Јеромеа Давидсона

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, прегледе, бесплатне е-књиге и ексклузивне понуде!

Још један корак…!

Молимо потврдите своју адресу е-поште у е-поруци коју смо вам управо послали.

.