Programmeerimisvead on rakenduste töö vead. Neid nimetatakse tavaliselt "veadeks", seega terminiks "silumine".
Arendajana avastate, et kulutate palju aega vigade parandamiseks. Paljud vead, millega kokku puutute, on tavalised ja nende teadmine aitab neid ennekõike ennetada.
Nende kolme tüüpi programmeerimisvigade kohta peate teadma järgmist ja kuidas nende vastu kaitsta:
1. Käitus- või täitmisvead
Need on vead, mis ilmnevad programmi käivitamisel (st käituse ajal). Need võivad põhjustada programmi sobiva käivitamise või isegi mitte töötamise.
Saatuslikud käitustõrked põhjustavad programmi täitmise peatumise, mitte-fataalsed aga täitmise lõpetamise, kuid valede tulemustega.
Tüüpiline käitamisviga on jagamine nulliga. Nulliga jagamine peaks andma lõpmatu tulemuse, kuid kahjuks pole me veel välja mõelnud andmestruktuuri, mis suudaks seda andmemahtu salvestada.
Seetõttu viib jagamine nulliga Java kompilaatoris aritmeetilise erandi.
2. Loogikavead
Loogikavead on põhjustatud valest põhjendusest. Oluline on märkida, et need vead ei pruugi olla tingitud teie tehtud "veast". Need võivad ilmneda seetõttu, et te ei arvestanud teatud teostusstsenaariumiga.
Neid on kõige raskem käsitseda. Seda seetõttu, et loogikaveaga kood on kehtiv programm keeles, kuhu see on kirjutatud. Seetõttu ei viska see kompilaatori viga. Ainus küsimus on see, et see annab valesid tulemusi.
Saatuslik loogikaviga põhjustab programmi täitmise peatumise, mittetaoline lubab programmi täitmist jätkata, kuid valede tulemustega.
Levinud loogikaviga on ükshaaval viga. See juhtub tavaliselt silmuse jätkamise tingimuse märkimisel. Oletame, et soovite välja printida viis esimest ruutu.
Seotud: Kõige tavalisemad programmeerimis- ja kodeerimisvead
Võite lõpuks kirjutada allpool oleva koodi oma silmusse, mis annab ainult neli esimest sellist numbrit.
for (int x = 1; x <5; x ++) {System.out.ln (x * x); }
Sellise vea vältimiseks võite selle asemel kasutada märki <=. Väikese või võrdse märgi kasutamine on intuitiivsem ja seepärast on vähem tõenäoline, et te oma relatsioonitoiminguid segate.
Teine levinud loogikaviga on juhtlause mõlema sulgude väljajätmine ja ometi moodustab allpool olev keha selle kontrolli all oleva koodiploki.
Vaadake allpool toodud näidet. See kontrollib, kas juhuslik arv on paaritu või paaritu, seejärel prindib väljundi.
import java.util. Juhuslik;
avalik klass OddEven {
public staatiline void main (String [] args) {
Juhuslik numberGenerator = uus Juhuslik ();
int randomNumber = numberGenerator.nextInt (10);
kui ((randomNumber% 2) == 0)
System.out.println ("Siin on teie õnnenumber:" + randomNumber);
System.out.println ("Teie saadud number" + randomNumber + "on paaris"); // rida 11
}
}
Teate rida 11. See käivitatakse alati olenemata sellest, kas teie juhuslik arv on paaris. See oleks muidugi loogiliselt vale, kui saadud number on paaritu.
Sealhulgas mõlemad System.out.println traksid {}, oleks seda vältinud.
Seotud: Tarkvaraarenduse sammud, mida kõik programmeerijad peaksid teadma
Teine loogikaviga, millele tähelepanu pöörata, ei ole silmuse lõpetamise tingimuse pakkumine. Selle tulemuseks on lõpmatu tsükkel ja teie programm ei lõpeta kunagi täitmist.
3. Süntaksi- või kompileerimisaja vead
Need on vead, mis on põhjustatud Java keelereeglite rikkumisest. Neid nimetatakse ka kompileerimise või kompileerimisaja vigadeks.
Need on kõige lihtsamalt käsitletavad vead, sest kompilaator teatab neist alati. Paljud kompilaatorid käivad isegi edasi ja ütlevad teile, milline viga teie koodis on.
Veataluvus
Praktiline viis tarkvaraküsimustega tegelemiseks on rikketaluvuse vähendamine, lisades erandkäsitluse. Sa võid kasutada proovige..püüdma avaldused selle saavutamiseks.
Programmi täitmisega jätkamiseks, olenemata saak plokk, kasutage lõpuks avaldus.
Süntaks on:
proovige {// blokeerida, kui pole probleeme}
saak (erand e) {
// Blokeeritud probleemide lahendamiseks
} lõpuks {// Blokeeri pärast püüdmist
}
Vaadake allolevat koodinäidet:
import java.util. Juhuslik;
avalik klass Juhuslikud numbrid {
public staatiline void main (String [] args) {
Juhuslik numberGenerator = uus Juhuslik ();
proovige {
for (int loendur = 10; loendur <= 100; loendur ++) {
int randomNumber = numberGenerator.nextInt (10);
System.out.println (loendur / juhuslik number); } }
saak (erand e) {
System.out.println ("jagamine nulliga!");
}
lõpuks {
System.out.println ("Lõpmatu väärtus saadi");}
}
}
Ülaltoodud programm genereerib juhusliku arvu vahemikus null kuni 10 ja kasutab seda arvu loenduri väärtuse jagamiseks vahemikus 10 kuni 100. Nulliga jagamise korral tabab süsteem vea ja kuvab teate.
Parem kodeerimine
Hea tava on lisada koodile kommentaare. See aitab teil failide hõlpsasti läbi kammida, kui teil on viga. Üks väike, kuid väga oluline samm tugevate kodeerimistavade väljatöötamiseks.
Heade kodeerimistavade korral peaksite suutma vältida levinud programmeerimisvigu.
Kas olete kodeerimise pärast segaduses? Kas sa skriptidest aru ei saa? Siin on see, mida peate teadma programmeerimise elementide kohta.
Loe edasi
- Programmeerimine
- Java
- Kodeerimise näpunäited
Jerome on MakeUseOfi personalikirjanik. Ta käsitleb artikleid programmeerimise ja Linuxi kohta. Ta on ka krüptohuviline ja hoiab alati krüptotööstuse vahelehti.
Telli meie uudiskiri
Liituge meie uudiskirjaga, kus leiate tehnilisi näpunäiteid, ülevaateid, tasuta e-raamatuid ja eksklusiivseid pakkumisi!
Veel üks samm !!!
Palun kinnitage oma e-posti aadress e-kirjas, mille just teile saatsime.