Ohjelmointivirheet ovat puutteita sovellusten toiminnassa. Niitä kutsutaan yleisesti "virheiksi", joten termi "virheenkorjaus".
Kehittäjänä löydät itsesi viettämään paljon aikaa virheiden korjaamiseen. Useat tapaamistasi virheistä ovat yleisiä, ja niiden tunteminen auttaa ensinnäkin estämään ne.
Tässä on, mitä sinun on tiedettävä näistä kolmesta ohjelmointivirheestä ja miten voit suojautua niitä vastaan:
1. Suorituksenaikaiset virheet tai suoritusvirheet
Nämä ovat virheitä, jotka tapahtuvat ohjelman suorituksen aikana (ts. Ajon aikana). Ne voivat aiheuttaa sen, että ohjelmaa ei suoriteta kunnolla tai se ei ehkä toimi ollenkaan.
Kohtalokkaat ajonaikaiset virheet aiheuttavat ohjelman suorituksen lopettamisen, kun ei-kohtalokkaat suorittaminen loppuu, mutta virheellisillä tuloksilla.
Tyypillinen ajonaikainen virhe on jako nollavirheellä. Jakamisen nollalla on tarkoitus tuottaa loputon tulos, mutta valitettavasti emme ole vielä keksineet tietorakennetta, joka pystyy tallentamaan kyseisen määrän tietoa.
Siksi nollalla jakaminen johtaa aritmeettiseen poikkeukseen Java-kääntäjässä.
2. Loogiset virheet
Loogiset virheet johtuvat virheellisestä päättelystä. On tärkeää huomata, että nämä virheet eivät välttämättä johdu tekemästäsi "virheestä". Ne voivat ilmetä, koska et ottanut huomioon tiettyä suoritusskenaariota.
Niitä on vaikeinta käsitellä. Tämä johtuu siitä, että logiikkavirheellä varustettu koodi on kelvollinen ohjelma kielellä, johon se on kirjoitettu. Siksi se ei heitä kääntäjävirhettä. Ainoa asia on, että se tuottaa virheellisiä tuloksia.
Kohtalokas logiikkavirhe saa ohjelman suorittamisen lopettamaan, kun ei-kohtalokas sallii ohjelman suorittamisen jatkamisen, mutta virheellisillä tuloksilla.
Yleinen logiikkavirhe on yksi kerrallaan tapahtuva virhe. Tämä tapahtuu yleensä ilmoitettaessa silmukan jatko-olosuhteita. Oletetaan, että haluat tulostaa viisi ensimmäistä neliönumeroa.
Liittyvät: Yleisimmät ohjelmointi- ja koodausvirheet
Saatat päätyä kirjoittamaan alla olevan koodin for for -silmukkaasi, joka antaa vain neljä ensimmäistä tällaista numeroa.
for (int x = 1; x <5; x ++) {System.out.ln (x * x); }
Tällaisen virheen välttämiseksi voit käyttää sen sijaan merkkiä <=. Pienemmän tai yhtä suuri -merkin käyttäminen on intuitiivisempaa ja siksi et todennäköisesti sekoita relaatiotoimintojasi.
Toinen yleinen logiikkavirhe jättää molemmat ohjauslausekkeen olkaimet pois, mutta alla oleva runko muodostaa koodilohkon, joka on sen hallinnassa.
Katso alla olevaa esimerkkiä. Se tarkistaa, onko satunnaisluku pariton vai parillinen, ja tulostaa sitten tuloksen.
tuo java.util. Satunnainen;
julkinen luokka OddEven {
public staattinen void main (String [] argumentoi) {
Random numberGenerator = uusi Random ();
int randomNumber = numeroGenerator.nextInt (10);
jos ((randomNumber% 2) == 0)
System.out.println ("Tässä on onnenumerosi:" + satunnaisluku);
System.out.println ("Saamasi numero" + satunnaisluku + "on parillinen"); // rivi 11
}
}
Ilmoitusrivi 11. Se suoritetaan aina riippumatta siitä, onko saamasi satunnaisluku tasainen. Tämä olisi tietysti loogisesti väärin, kun saamasi numero on pariton.
Sisältää molemmat System.out.println aaltosulkeiden väliset lausunnot {}, olisi välttänyt tämän.
Liittyvät: Ohjelmistokehityksen vaiheet, jotka kaikkien ohjelmoijien tulisi tietää
Toinen looginen virhe, johon kannattaa kiinnittää huomiota, ei tarjoa silmukan päättämisehtoa. Tämä johtaa äärettömään silmukkaan, eikä ohjelma koskaan lopeta suoritusta.
3. Syntaksi- tai kääntöaikavirheet
Nämä ovat virheitä, jotka johtuvat Java-kielisääntöjen rikkomisesta. Niitä kutsutaan myös kokoamis- tai kääntöaikavirheiksi.
Nämä ovat helpoimmin käsiteltäviä virheitä, koska kääntäjäsi ilmoittaa niistä aina. Monet kääntäjät jopa menevät eteenpäin ja kertovat sinulle koodissasi olevan virheen.
Vikasietoisuus
Käytännöllinen tapa käsitellä ohjelmistokysymyksiä on mainita vikasietoisuus sisällyttämällä poikkeusten käsittely. Voit käyttää yritä saada kiinni lausunnot tämän saavuttamiseksi.
Jatka ohjelman suorittamista riippumatta saada kiinni estä, käytä lopulta lausunto.
Syntaksi on:
kokeile {// Estä suorittaaksesi, jos ongelmia ei ole}
saalis (poikkeus e) {
// Estä käsittelemään löydetyt ongelmat
} lopuksi {// Estä suoritettavaksi kiinnioton jälkeen
}
Katso alla oleva koodiesimerkki:
tuo java.util. Satunnainen;
julkisen luokan RandomNumbers {
public staattinen void main (String [] argumentoi) {
Random numberGenerator = uusi Random ();
yrittää{
for (int-laskuri = 10; laskuri <= 100; laskuri ++) {
int randomNumber = numeroGenerator.nextInt (10);
System.out.println (laskuri / satunnaisluku); } }
saalis (poikkeus e) {
System.out.println ("Jakaminen nollalla tapahtui!");
}
lopulta {
System.out.println ("Ääretön arvo sai");}
}
}
Yllä oleva ohjelma tuottaa satunnaisluvun välillä nolla ja 10, ja käyttää sitten tätä lukua jakamaan laskurin arvon välillä 10 ja 100. Jos havaitaan jako nollalla, järjestelmä havaitsee virheen ja näyttää viestin.
Paranna koodausta
On hyvä tapa lisätä kommentteja koodiin. Tämä auttaa sinua helposti kampaamaan tiedostosi läpi, kun sinulla on virhe. Yksi pieni, mutta erittäin tärkeä askel vahvojen koodauskäytäntöjen kehittämiseen.
Hyvien koodauskäytäntöjen avulla sinun pitäisi pystyä välttämään yleisiä ohjelmointivirheitä.
Hämmentynyt koodaamisesta? Etkö ymmärrä komentosarjoja? Tässä on, mitä sinun tarvitsee tietää ohjelmoinnin rakennuspalikoista.
Lue seuraava
- Ohjelmointi
- Java
- Koodausvinkit
Jerome on MakeUseOfin henkilöstökirjailija. Hän käsittelee artikkeleita ohjelmoinnista ja Linuxista. Hän on myös salauksen harrastaja ja pitää aina välilehtiä salausteollisuudesta.
Tilaa uutiskirjeemme
Liity uutiskirjeeseemme, jossa on teknisiä vinkkejä, arvosteluja, ilmaisia e-kirjoja ja erikoistarjouksia!
Vielä yksi askel !!!
Vahvista sähköpostiosoitteesi juuri lähettämässäsi sähköpostiviestissä.