Java nosozliklarni tuzatish (debugging)


ULASHISH

Java nosozliklarni tuzatish (debugging)

Keng tarqalgan xatolar bilan tanishgach, keyingi qadam — Java kodingizdagi nosozliklarni tuzatishni (debug), ya’ni bu xatolarni qanday qilib samarali topish va tuzatishni tushunish.

Bu sahifada yangi boshlovchilar uchun foydali, hatto tajribali dasturchilarga ham qo‘l keladigan oddiy debugging usullari bilan tanishtiriladi.


Debugging nima?

Debugging (nosozliklarni tuzatish) — kodingizdagi xatolar yoki nosozliklarni (bug) aniqlash va tuzatish jarayoni.

Bu ko‘pincha quyidagilarni o‘z ichiga oladi:

  • Xato xabarlarini o‘qish
  • O‘zgaruvchi qiymatlarini qadamma-qadam kuzatish
  • Kodning kichik qismlarini alohida sinab ko‘rish

Maslahat: Debugging — amaliyot bilan rivojlanadigan ko‘nikma. Qancha ko‘p debugging qilsangiz, muammolarni shuncha tez aniqlashni o‘rganasiz.


Debugging uchun chiqarish ko‘rsatmalari

Java kodidagi nosozliklarni tuzatishning eng oddiy (va ko‘pincha eng samarali) usuli — qiymatlarni chiqarish va dastur oqimini tekshirish uchun System.out.println()’dan foydalanish.

Bu misolda birinchi qator "Before division" chiqariladi, ammo ikkinchi qatorga hech qachon yetib kelinmaydi, chunki dastur nolga bo‘lish sababli ishdan chiqadi:

Misol

int x = 10;
int y = 0;

System.out.println("Before division");  // Debug output

int result = x / y;  // Crashes

System.out.println("Result: " + result);  // Never runs

Natija:

Before division
Exception in thread "main" java.lang.ArithmeticException: / by zero

O‘zingiz sinab ko‘ring »

Maslahat: Muammo qayerda yuz berayotganini aniqlash uchun kodning muhim qatorlaridan oldin va keyin chiqarish ko‘rsatmalarini qo‘shing.


O‘zgaruvchi qiymatlarini tekshirish

Agar kutilmagan narsa yuz bersa, o‘zgaruvchilaringiz qiymatlarini chiqaring:

Misol

int age = 17;
System.out.println("Age: " + age);

if (age >= 18) {
  System.out.println("Access granted");
} else {
  System.out.println("Access denied");
}

O‘zingiz sinab ko‘ring »

Maslahat: Bu shart to‘g‘ri ishlayotganini tekshirishning yaxshi usuli — age qiymatini 18 yoki 19 ga o‘zgartirib, natijani kuzatib ko‘ring!



IDE’lar yordamida debugging

IntelliJ IDEA, Eclipse va NetBeans kabi zamonaviy IDE’larda o‘rnatilgan debugging vositalari mavjud.

  • Dasturni muayyan qatorlarda to‘xtatib turish uchun to‘xtash nuqtalarini (breakpoints) o‘rnating
  • Kodni qatorma-qator qadamlab bajaring
  • O‘zgaruvchi qiymatlarini real vaqtda kuzating

Maslahat: Xatolarni tezroq topish uchun IDE’ngizdagi debuggerdan foydalaning — u faqat chiqarish ko‘rsatmalaridan ko‘ra kuchliroq!


Debugging bo‘yicha nazorat ro‘yxati

  • Xato xabarini to‘liq o‘qing — u ko‘pincha aynan nima noto‘g‘ri ekanini aytib beradi
  • Barcha o‘zgaruvchilar ishlatilishidan oldin initsializatsiya qilinganini tekshiring
  • Muammoni kuzatish uchun o‘zgaruvchi qiymatlarini chiqaring
  • Sikllar va massivlarda bittaga adashish (off-by-one) xatolariga e’tibor bering
  • Xatolarni topish uchun kod qismlarini izohga aylantiring (comment out)

Keyingi bobda Java istisnolar (exceptions) yordamida dasturlaringizdagi xatolarni qanday qilib to‘g‘ri qayta ishlashni o‘rganasiz.


W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!