Programske pogreške su nedostaci u načinu rada aplikacija. Obično se nazivaju "bugovi", pa otuda i izraz "otklanjanje pogrešaka".
Kao programer, utrošit ćete puno vremena na ispravljanje programskih pogrešaka. Brojne su pogreške s kojima ćete se susresti uobičajene, a njihovo poznavanje pomoći će vam u prvom redu da ih spriječite.
Evo što trebate znati o ove tri vrste programskih pogrešaka i kako se možete zaštititi od njih:
1. Pogreške tijekom izvođenja ili izvršavanja
To su pogreške koje se javljaju kada se program izvršava (tj. Za vrijeme izvođenja). Oni mogu uzrokovati da se program ne izvršava pravilno ili se uopće ne pokreće.
Fatalne runtime pogreške uzrokuju zaustavljanje izvođenja programa, dok one koji nisu fatalne dovode do završetka, ali s netočnim rezultatima.
Tipična pogreška izvršavanja je podjela s nulom pogreške. Podjela s nulom trebala bi dati beskonačan rezultat, ali nažalost, još nismo smislili strukturu podataka koja može pohraniti tu količinu podataka.
Stoga podjela s nulom dovodi do aritmetičke iznimke u Java kompajleru.
2. Logičke pogreške
Logičke pogreške nastaju zbog pogrešnog obrazloženja. Važno je napomenuti da ove pogreške nisu nužno posljedica "pogreške" koju ste učinili. Mogu se dogoditi jer niste uzeli u obzir određeni scenarij izvršenja.
S njima je najteže rukovati. To je zato što je kod s logičkom pogreškom važeći program na jeziku na kojem je napisan. Stoga neće dovesti do pogreške kompajlera. Jedino je pitanje što daje netočne rezultate.
Fatalna logička pogreška uzrokovat će zaustavljanje izvođenja programa, dok će nefatalna omogućiti nastavak izvođenja programa, ali s netočnim rezultatima.
Uobičajena logička pogreška je pojedinačna pogreška. To se obično događa kada se navede uvjet za nastavak petlje. Recimo da želite ispisati prvih pet kvadratnih brojeva.
Povezano: Najčešće pogreške u programiranju i kodiranju
Na kraju biste mogli napisati donji kod u petlju for, koja daje samo prva četiri takva broja.
za (int x = 1; x <5; x ++) {System.out.ln (x * x); }
Da biste izbjegli takvu pogrešku, umjesto toga možete upotrijebiti znak <=. Upotreba znaka manje od-ili-jednako intuitivnije je i zato ćete manje vjerovatno miješati svoje relacijske operacije.
Još jedna uobičajena logička pogreška je izostavljanje obje zagrade kontrolnog izraza, a tijelo dolje čini blok koda koji je pod njegovom kontrolom.
Pogledajte primjer u nastavku. Provjerava je li slučajan broj neparan ili paran, a zatim ispisuje izlaz.
uvoz java.util. Slučajno;
javna klasa OddEven {
javna statička void glavna (String [] args) {
Slučajni brojGenerator = novi Random ();
int randomNumber = numberGenerator.nextInt (10);
if ((randomNumber% 2) == 0)
System.out.println ("Evo vašeg sretnog broja:" + randomNumber);
System.out.println ("Broj" + randomNumber + "koji ste dobili je paran"); // redak 11
}
}
Redak za obavijesti 11. Uvijek će se izvršiti bez obzira je li slučajni broj koji ste dobili paran. To bi naravno bilo logično pogrešno kad je broj koji ste dobili neparan.
Uključujući oboje System.out.println izjave između zagrada {}, ovo bi izbjegle.
Povezano: Koraci razvoja softvera koji bi svi programeri trebali znati
Druga logička pogreška na koju treba paziti nije pružanje uvjeta prekida petlje. To će rezultirati beskonačnom petljom i vaš program nikada neće završiti izvršenje.
3. Sintaksa ili pogreške vremena prevođenja
To su pogreške nastale zbog kršenja pravila Java jezika. Također se nazivaju pogreškama kompilacije ili vremena kompajliranja.
To su najlakše pogreške s kojima se može nositi, jer će ih vaš prevodilac uvijek prijaviti. Mnogi kompajleri čak naprijed kažu i kažu vam u retku vašeg koda greška.
Tolerancija kvarova
Praktičan način rješavanja softverskih problema je pojačati toleranciju kvarova, uključujući rukovanje iznimkama. Možeš koristiti pokušaj uhvatiti izjave da se to postigne.
Nastaviti s izvršavanjem programa bez obzira na iznimku uhvaćenu u ulov blok, koristite konačno izjava.
Sintaksa je:
pokušajte {// Blokirati za izvršenje ako nema problema}
catch (Iznimka e) {
// Blokiraj za rješavanje pronađenih problema
} konačno {// Blokiraj za izvršenje nakon ulova
}
Pogledajte primjer koda u nastavku:
uvoz java.util. Slučajno;
javni razred RandomNumbers {
javna statička void glavna (String [] args) {
Slučajni brojGenerator = novi Random ();
probati{
za (int brojač = 10; brojač <= 100; brojač ++) {
int randomNumber = numberGenerator.nextInt (10);
System.out.println (brojač / slučajanBroj); } }
catch (Iznimka e) {
System.out.println ("Naišla je podjela s nulom!");
}
konačno{
System.out.println ("Dobijena je beskonačna vrijednost");}
}
}
Gornji program generira slučajni broj između nule i 10, a zatim koristi taj broj za dijeljenje brojača između 10 i 100. Ako se naiđe na podjelu s nulom, sustav hvata pogrešku i prikazuje poruku.
Poboljšajte kodiranje
Dobra je praksa dodavati komentare u svoj kôd. To će vam pomoći da lako pročešljate datoteke kad imate bug. Jedan mali, ali vrlo važan korak u razvoju snažnih praksi kodiranja.
Uz dobru praksu kodiranja trebali biste izbjeći uobičajene programske pogreške.
Zbunjeni ste kod kodiranja? Ne razumijete skriptiranje? Evo što trebate znati o blokovima programiranja.
Pročitajte Dalje
- Programiranje
- Java
- Savjeti za kodiranje
Jerome je zaposlenik u MakeUseOf-u. Obrađuje članke o Programiranju i Linuxu. Također je kripto entuzijast i uvijek prati kripto industriju.
Pretplatite se na naše obavijesti
Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!
Još jedan korak…!
Potvrdite svoju adresu e-pošte u e-pošti koju smo vam upravo poslali.