Programavimo klaidos yra programų darbo trūkumai. Jie paprastai vadinami „klaidomis“, taigi ir terminas „derinimas“.
Kaip kūrėjas pastebėsite, kad praleidote daug laiko klaidų taisymui. Nemažai klaidų, su kuriomis susidursite, yra dažnos, o žinodamos jas pirmiausia padėsite jų išvengti.
Štai ką turite žinoti apie šias tris programavimo klaidų rūšis ir kaip nuo jų apsisaugoti:
1. Vykdymo ar vykdymo klaidos
Tai yra klaidos, atsirandančios vykdant programą (t. Y. Vykdymo metu). Dėl jų programa gali būti netinkamai vykdoma arba net neveikia.
Dėl lemtingų vykdymo laiko klaidų programos vykdymas sustabdomas, o dėl nefatališkų - vykdymas baigiamas, tačiau gaunami neteisingi rezultatai.
Tipiška vykdymo laiko klaida yra padalijimas iš nulio klaidos. Skirstymas pagal nulį turėtų duoti begalinį rezultatą, tačiau, deja, dar nesugalvojome duomenų struktūros, galinčios išsaugoti tokį duomenų kiekį.
Todėl padalijimas į nulį lemia aritmetinę „Java“ kompiliatoriaus išimtį.
2. Logikos klaidos
Logikos klaidos atsiranda dėl ydingo argumentavimo. Svarbu pažymėti, kad šios klaidos nebūtinai atsiranda dėl jūsų padarytos „klaidos“. Jie gali atsirasti dėl to, kad neatsižvelgėte į tam tikrą vykdymo scenarijų.
Juos sunkiausia tvarkyti. Taip yra todėl, kad kodas su logikos klaida yra galiojanti programa ta kalba, kuria jis parašytas. Todėl tai nemeta kompiliatoriaus klaidos. Vienintelis dalykas yra tai, kad jis duoda neteisingus rezultatus.
Dėl lemtingos logikos klaidos programos vykdymas bus sustabdytas, o ne lemtingas - tęsti programos vykdymą, tačiau gaunami neteisingi rezultatai.
Dažna logikos klaida yra „po vieną“ klaida. Tai paprastai įvyksta nurodant ciklo tęsimo sąlygą. Tarkime, kad norite atsispausdinti pirmuosius penkis kvadratinius skaičius.
Susijęs: Dažniausios programavimo ir kodavimo klaidos
Galų gale galite parašyti žemiau esantį kodą savo „for loop“, kuriame pateikiami tik pirmieji keturi tokie skaičiai.
už (int x = 1; x <5; x ++) {System.out.ln (x * x); }
Norėdami išvengti tokios klaidos, galite naudoti ženklą <=. Ženklo „mažesnis nei arba lygus“ naudojimas yra intuityvesnis, todėl rečiau maišysite savo santykių operacijas.
Kita įprasta logikos klaida yra abiejų kontrolinio sakinio breketų palikimas, tačiau žemiau esantis kūnas sudaro jo valdomą kodo bloką.
Pažvelkite į žemiau pateiktą pavyzdį. Jis patikrina, ar atsitiktinis skaičius nelyginis, ar lyginis, tada išspausdina išvestį.
importuoti java.util. Atsitiktinis;
viešoji klasė „OddEven“ {
public static void main (String [] argumentuoja) {
Atsitiktinis skaičius Generatorius = naujas Atsitiktinis ();
int randomNumber = numberGenerator.nextInt (10);
jei ((randomNumber% 2) == 0)
System.out.println ("Čia jūsų laimingas skaičius:" + randomNumber);
System.out.println ("Jūsų gautas skaičius" + randomNumber + "yra lyginis"); // 11 eilutė
}
}
11 pranešimo eilutė. Jis visada bus vykdomas neatsižvelgiant į tai, ar jūsų gautas atsitiktinis skaičius yra lygus. Tai, žinoma, būtų logiškai neteisinga, kai gautas skaičius yra nelyginis.
Įskaitant abu System.out.println teiginių tarp petnešų {}, to būtų išvengta.
Susijęs: Programinės įrangos kūrimo žingsniai, kuriuos turėtų žinoti visi programuotojai
Kita loginė klaida, į kurią reikia atkreipti dėmesį, yra nenurodyti kilpos nutraukimo sąlygos. Tai sukels begalinę ciklą ir jūsų programa niekada nebaigs vykdyti.
3. Sintaksės arba kompiliavimo laiko klaidos
Tai klaidos, atsiradusios dėl „Java“ kalbos taisyklių pažeidimų. Jie taip pat vadinami kompiliavimo arba kompiliavimo laiko klaidomis.
Tai yra lengviausia pašalinti klaidas, nes kompiliatorius visada apie jas praneš. Daugelis kompiliatorių netgi eina į priekį ir nurodo eilutę jūsų kode, kurioje yra klaida.
Gedimų tolerancija
Praktinis būdas spręsti programinės įrangos problemas yra paminėti klaidų toleranciją, įtraukiant išimčių tvarkymą. Tu gali naudoti pabandyk..pagauti pareiškimai tai pasiekti.
Tęsti programos vykdymą, neatsižvelgiant į išimtis, įtrauktą į pagauti blokuoti, naudokite pagaliau pareiškimas.
Sintaksė yra:
pabandykite {// Blokuoti, kad įvykdytumėte, jei nėra problemų}
sugavimas (e išimtis) {
// Blokas tvarkyti rastas problemas
} pagaliau {// Blokuoti, kad būtų įvykdytas po sugavimo
}
Žr. Toliau pateiktą kodo pavyzdį:
importuoti java.util. Atsitiktinis;
public class RandomNumbers {
public static void main (String [] argumentuoja) {
Atsitiktinis skaičius Generatorius = naujas Atsitiktinis ();
bandyti{
for (int skaitiklis = 10; skaitiklis <= 100; skaitiklis ++) {
int randomNumber = numberGenerator.nextInt (10);
System.out.println (skaitiklis / randomNumber); } }
sugavimas (e išimtis) {
System.out.println ("Padalijimas nuliu įvyko!");
}
pagaliau{
System.out.println ("Gauta begalinė vertė");}
}
}
Pirmiau nurodyta programa sukuria atsitiktinį skaičių nuo nulio iki 10, tada naudoja šį skaičių, kad padalytų skaitiklio vertę nuo 10 iki 100. Jei susidaro padalijimas iš nulio, sistema užfiksuoja klaidą ir parodo pranešimą.
Geriau užkoduokite
Gera praktika pridėti komentarus prie savo kodo. Tai padės jums lengvai peršiūrėti failus, kai turite klaidą. Vienas mažas, bet labai svarbus žingsnis kuriant tvirtą kodavimo praktiką.
Laikydamiesi geros kodavimo praktikos, turėtumėte sugebėti išvengti įprastų programavimo klaidų.
Sumišote dėl kodavimo? Nesuprantate scenarijų? Štai ką jūs turite žinoti apie programavimo elementus.
Skaitykite toliau
- Programavimas
- „Java“
- Kodavimo patarimai
Jeronimas yra „MakeUseOf“ personalo rašytojas. Jis pateikia straipsnius apie programavimą ir „Linux“. Jis taip pat yra kripto entuziastas ir visada saugo skirtukus kripto pramonei.
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kuriame rasite techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!
Dar vienas žingsnis…!
Prašome patvirtinti savo el. Pašto adresą el. Laiške, kurį jums ką tik išsiuntėme.