Błędy programistyczne to wady działania aplikacji. Są one powszechnie określane jako „błędy”, stąd określenie „debugowanie”.

Jako programista będziesz spędzać dużo czasu na naprawianiu błędów. Wiele błędów, które napotkasz, jest powszechnych, a ich znajomość pomoże Ci przede wszystkim im zapobiec.

Oto, co musisz wiedzieć o tych trzech typach błędów programistycznych i jak możesz się przed nimi zabezpieczyć:

1. Błędy wykonania lub wykonania

Są to błędy, które występują podczas wykonywania programu (tj. w czasie wykonywania). Mogą one spowodować, że program nie będzie działał poprawnie lub w ogóle nie będzie działał.

Błędy krytyczne czasu wykonywania powodują zatrzymanie wykonywania programu, podczas gdy błędy niekrytyczne powodują zakończenie wykonywania, ale z niepoprawnymi wynikami.

Typowy błąd wykonania to błąd dzielenia przez zero. Dzielenie przez zero ma dać nieskończony wynik, ale niestety nie wymyśliliśmy jeszcze struktury danych, która mogłaby przechowywać taką ilość danych.

instagram viewer

Dlatego dzielenie przez zero prowadzi do wyjątku arytmetycznego w kompilatorze Java.

2. Błędy logiczne

Błędy logiczne są spowodowane błędnym rozumowaniem. Należy pamiętać, że te błędy niekoniecznie wynikają z „pomyłki”, którą popełniłeś. Mogą wystąpić, ponieważ nie brałeś pod uwagę określonego scenariusza realizacji.

Są najtrudniejsze w obsłudze. Dzieje się tak, ponieważ kod z błędem logicznym jest prawidłowym programem w języku, w którym został napisany. Dlatego nie spowoduje błędu kompilatora. Jedynym problemem jest to, że daje nieprawidłowe wyniki.

Krytyczny błąd logiczny spowoduje zatrzymanie wykonywania programu, podczas gdy błąd niekrytyczny pozwoli na kontynuowanie wykonywania programu, ale z niepoprawnymi wynikami.

Częstym błędem logicznym jest błąd typu „off-by-one”. Zwykle dzieje się tak podczas określania warunku kontynuacji pętli. Załóżmy, że chcesz wydrukować pierwsze pięć liczb kwadratowych.

Związane z: Najczęstsze błędy w programowaniu i kodowaniu

Możesz w końcu napisać poniższy kod w swojej pętli for, która daje tylko pierwsze cztery takie liczby.

dla( int x=1; x<5; x++){ System.out.ln (x*x); }

Aby uniknąć takiego błędu, możesz zamiast tego użyć znaku <=. Używanie znaku „mniej niż lub równo” jest bardziej intuicyjne, a zatem mniej prawdopodobne jest, że pomylisz swoje operacje relacyjne.

Innym częstym błędem logicznym jest pominięcie obu nawiasów klamrowych instrukcji sterującej, a mimo to treść poniżej tworzy blok kodu, który jest pod jego kontrolą.

Spójrz na poniższy przykład. Sprawdza, czy liczba losowa jest parzysta czy nieparzysta, a następnie wyświetla wynik.

import java.util. Losowy;
klasa publiczna OddEven{
public static void main (String[] args) {
Liczba losowaGenerator = new Random();
int randomNumber = numberGenerator.nextInt (10);
jeśli ((losowa liczba%2)==0)
System.out.println("Oto twoja szczęśliwa liczba:" + randomNumber);
System.out.println("Liczba "+ randomNumber +", którą otrzymałeś jest parzysta"); // linia 11
}
}

Uwaga, wiersz 11. Zawsze będzie wykonywany, niezależnie od tego, czy otrzymana liczba losowa jest parzysta. Byłoby to oczywiście logicznie błędne, gdy otrzymana liczba jest nieparzysta.

W tym oba System.out.println wypowiedzi między nawiasami klamrowymi { } pozwoliłoby uniknąć tego.

Związane z: Kroki rozwoju oprogramowania, które powinni znać wszyscy programiści

Innym błędem logicznym, na który należy zwrócić uwagę, jest brak warunku zakończenia pętli. Spowoduje to nieskończoną pętlę, a Twój program nigdy nie zakończy wykonywania.

3. Błędy składni lub czasu kompilacji

Są to błędy spowodowane naruszeniem zasad języka Java. Są one również nazywane błędami kompilacji lub błędami czasu kompilacji.

Są to najłatwiejsze błędy, ponieważ Twój kompilator zawsze je zgłosi. Wiele kompilatorów mówi nawet o wierszu kodu, w którym występuje błąd.

Tolerancja błędów

Praktycznym sposobem radzenia sobie z problemami z oprogramowaniem jest wykorzystanie odporności na awarie poprzez uwzględnienie obsługi wyjątków. Możesz użyć próbuj złapać oświadczenia, aby to osiągnąć.

Aby kontynuować wykonywanie programu niezależnie od wyjątku przechwyconego w łapać blok, użyj use Wreszcie komunikat.

Składnia to:

try{ // Zablokuj do wykonania, jeśli nie ma problemów } 
połów (wyjątek e){
// Zablokuj, aby obsłużyć znalezione problemy
}finally{ // Blok do wykonania po złapaniu
}

Zobacz przykład kodu poniżej:

import java.util. Losowy;
klasa publiczna RandomNumbers{
public static void main (String[] args) {
Liczba losowaGenerator = new Random();
próbować{
for (liczba int = 10; licznik<=100; licznik++){
int randomNumber = numberGenerator.nextInt (10);
System.out.println (licznik/losowa liczba); } }
połów (wyjątek e){
System.out.println("Napotkano dzielenie przez zero!");
}
Wreszcie{
System.out.println("Otrzymano nieskończoną wartość");}
}
}

Powyższy program generuje losową liczbę od zera do 10, a następnie używa tej liczby do podzielenia wartości licznika od 10 do 100. W przypadku napotkania dzielenia przez zero system wychwytuje błąd i wyświetla komunikat.

Bądź lepszy w kodowaniu

Dobrą praktyką jest dodawanie komentarzy do kodu. Pomoże to w łatwym przeszukiwaniu plików, gdy masz błąd. Jeden mały, ale bardzo ważny krok do opracowania dobrych praktyk kodowania.

Dzięki dobrym praktykom kodowania powinieneś być w stanie uniknąć typowych błędów programistycznych.

E-mail
Co to jest kodowanie i jak to działa?

Nie rozumiesz kodowania? Nie rozumiesz skryptów? Oto, co musisz wiedzieć o blokach konstrukcyjnych programowania.

Czytaj dalej

Powiązane tematy
  • Programowanie
  • Jawa
  • Wskazówki dotyczące kodowania
O autorze
Jerome Davidson (14 opublikowanych artykułów)

Jerome jest pisarzem sztabowym w MakeUseOf. Zajmuje się artykułami na temat programowania i systemu Linux. Jest także entuzjastą kryptowalut i zawsze śledzi branżę kryptograficzną.

Więcej od Jerome'a ​​Davidsona

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Jeszcze jeden krok…!

Potwierdź swój adres e-mail w e-mailu, który właśnie do Ciebie wysłaliśmy.

.