CodeGym topluluğundaki herkese merhaba! Bugün hata ayıklama hakkında konuşalım - bu nedir ve IntelliJ IDEA'da nasıl hata ayıklanır. Bu makale, minimum düzeyde Java Core bilgisine sahip kişiler için hazırlanmıştır. Kitaplıkları yayınlamak için herhangi bir çerçeve veya karmaşık prosedür olmayacak. Rahat bir gezinti. O yüzden rahatınıza bakın ve başlayalım!
projesini seçin ve Tamam'a basın . Ardından aşağıdaki pencereyi göreceksiniz: Seçilen seçenekleri bırakın: Projeyi dış kaynaklardan içe aktar ve Maven . Son'u tıklayın . Artık projeyi içe aktardığımıza göre, sürecin geri kalanını canlı bir örnekle anlatabiliriz.
Hata Ayıklama bölümündeki simgeyi bulun. Bu, tüm kesme noktalarını sessize alacaktır. Hangi kesme noktalarının ayarlandığını görmek için sol alt köşedeki Hata Ayıklama bölümüne gidip simgeyi bulabilir
veya Ctrl+Shift+F8 tuşlarına basabilirsiniz :
Kesme noktaları listesine giderek aşağıdakileri göreceğiz:
İki kesme noktası vardır . Burada:
Görünen pencerede, eklemek istediğiniz istisnanın adını yazın, listeden seçin ve Tamam'a tıklayın :
Bu, işleri nasıl kuracağımıza ilişkin ilk yazımızı bitiriyor, şimdi biz' Biraz pratik yapacağım.
dokümantasyon README dosyasına göre , nektarı toplanan tüm çiçeklerden beklenen davranış , toplanan bal miktarının ( çift şeklindedir ) yarısına eşit olmasıdır. toplanan nektar Proje aşağıdaki sınıflara sahiptir:
Sorunun ne olduğunu araştırmamız ve belirlememiz gerekir. Sağ alt köşedeki izleme yığınından, bir RuntimeException'ın atıldığını görebiliriz
Yukarıda bahsettiğimiz şey buydu.
Sonuç olarak, istisna atılmadan hemen önceki anda programı durduracağız ve şu simgeyi göreceğiz: ![IntelliJ IDEA'da hata ayıklama: Başlangıç kılavuzu - 17]()
Mevcut tüm bilgileri almak için Debug bölümüne bakmamız gerekiyor. Değişkenleri vardıruygulamanın bu bölümünde bulunan tüm değişkenleri gösteren bölme:
Uygulama tamamlanana kadar çalışır ve aşağıdaki yanıtı verir:
belgelere göre nektar 2'ye 1 oranında bala dönüşüyor:
Bu noktayı daha ayrıntılı olarak ele alacağız. Program, 28. satırı çalıştırmadan önce çalışmayı durdurdu. Alt kısımda, çalışan uygulama hakkında mevcut tüm bilgileri gösteren Hata Ayıklama bölümünü görüyoruz. Daha önce bahsedildiği gibi, Değişkenler bölmesi uygulamanın bu kısmında bulunan tüm değişkenleri ve nesneleri içerir. Çerçeveler bölmesi, uygulamanın geçtiği adımları gösterir — önceki (çerçeveler) adımlara bakabilir ve tüm yerel verileri görebilirsiniz. Programı çalıştırmaya devam etmek için aşağıda gösterildiği gibi F9'a veya yeşil simgeye basabilirsiniz :
Programı durdurmak için kırmızı kareye tıklayın:
Uygulamayı hata ayıklama modunda yeniden başlatmak için oka tıklayın:
Ayrıca, iki tuş kullanarak adım adım uygulama:
kullanacağız :
Bir iş analisti ile görüştükten sonra, belgelendirme README dosyasının bir hata içerdiği ve güncellenmesi gerektiği sonucuna vardık . README dosyasını güncelleyelim:
Stack Overflow CodeGym'deki makaleleri okuyabiliriz :)

Neden Hata Ayıklama moduna ihtiyacınız var?
Hemen kendimiz için bir şeyi açıklığa kavuşturalım: hatasız kod yoktur... Hayat böyle işler. Bu nedenle, kodumuz beklediğimiz gibi çalışmadığında parçalara ayrılmamalı ve pes etmemeliyiz. Ama ne yapmalıyız? Pekala, her yere ifadeler koyabilirSystem.out.println
ve ardından bir hata bulma umuduyla konsol çıktısını tarayabiliriz. Bununla birlikte, dikkatli günlük kaydı kullanarak hata ayıklayabilirsiniz (ve insanlar da yapar). Ancak kodunuzu yerel bir makinede çalıştırabiliyorsanız Hata Ayıklama modunu kullanmak daha iyidir. Bu makalede IntelliJ IDEA kullanarak bir projede hata ayıklamayı ele alacağımızı hemen belirtmek isterim.
Hata ayıklama modu nedir?
Hata ayıklama modu, çalışan kodda hata ayıklama (kontrol etme) içindir. Belirlenen yerlerde yürütmeyi durdurmanıza ve işlerin nasıl ilerlediğine bakmanıza olanak tanır. Programın durumunu kodun belirli bir yerinde anlamanıza olanak tanır. Tıpkı saati durdurup her şeye yandan bakabilmek gibi. Harika, değil mi? Amacımız, sevgili IntelliJ IDEA geliştirme ortamımızı kullanarak uygulamalarda nasıl hata ayıklanacağını hızlı ve kolay bir şekilde öğrenmektir.Hata ayıklamaya başlamak için neye ihtiyacınız var?
İşte bazı ücretsiz tavsiyeler: Bu makaleyi okurken burada açıklanan her şeyi yapın — yapmanız gereken her şeye sahipsiniz, devam edin. Neye ihtiyacın var:- IntelliJ IDEA sürüm 2019.3.1 veya üzeri. Birinin buna sahip olmaması durumunda, indirebileceğiniz bir bağlantı var . Community Edition'ı indirin — kullanacağım sürüm bu.
- Bu GitHub projesini klonlayın ve IDEA aracılığıyla içe aktarın.


Sadece biraz teori... Söz veriyorum :D
Biraz da olsa hata ayıklamaya başlamak için kesme noktasının ne olduğunu anlamanız ve birkaç kısayol tuşuna aşina olmanız gerekir. Kesme noktası , muhtemelen uygulama durumuna bağlı olarak, uygulamanın yürütülmesinin nerede durmasını istediğinizi gösteren özel bir işarettir. Sol taraftaki panele sol tıklayarak veya kod konumuna tıklayıp Ctrl+F8 tuşlarına basarak bir kesme noktası ayarlayabilirsiniz . Üç tür kesme noktasına bakalım: satır kesme noktaları, alan izleme noktaları ve yöntem kesme noktaları. İşte böyle görünüyor:-
Bir satırda:
Bir ifadenin bir lambda ifadesi varsa, IDEA sizden kesme noktasını tüm ifadeye mi yoksa özellikle lambda ifadesine mi koyacağınızı seçmenizi ister:
-
Bir yöntemde:
-
Bir sınıfta:




- Bee.java:24 — 24. satırdaki Bee sınıfında
- Main.java:14 — Main sınıfında 14. satırda


Gidip hata ayıklama denen şeyi yapalım!
Uzun bir arıcı ailesinden geliyorum, bu nedenle hata ayıklamayı göstermek için oluşturduğum proje, arıların nektarı toplama, nektarı bal haline getirme ve ardından arı kovanından bal alma sürecini anlatan modelleri anlatıyor. Projenin kök dizininde yer alan- Arı - sıradan bir işçi arı
- BeeQueen - kraliçe arı
- Arı Kovanı - arı kovanı
- HoneyPlant - nektarın toplandığı bir bal bitkisi (nektar kaynağı)
public static void main()
Ana — bu , yürütmenin başladığı yöntemi bulduğumuz yerdir .
main()
, programımızın bal miktarını hesaplamakla kalmayıp bir istisna da attığını görürüz... 
HoneyPlant.java:20
: 
main()
Yöntemi hata ayıklama modunda çalıştırarak bu RuntimeException'ı izleyelim . Bunu yapmak için IntelliJ IDEA'da yöntemin yanındaki yeşil üçgen okuna tıklayın main()
. 


- nektar = 1.0;
- nektar Kapasitesi = -1.0.
if (nectar == 0) {
return 0;
}
Ama sorun şu ki yanlış değişkeni kontrol ediyoruz. Bu koddaki bir hatadır. Program , çiçekte bulunan nektar miktarını kontrol etmek yerine (nectarCapacity değişkeninde saklanır ) , çiçekten almak istediğimiz nektar miktarı olan yöntemin nektar parametresinin değerini kontrol eder. İşte burada! İlk hatamız! Bunu düzelttikten sonra aşağıdaki kodu alıyoruz:
if (nectarCapacity == 0) {
return 0;
}
Şimdi main()
yöntemi normal şekilde çalıştırın (Run 'Main.main()')
. Atılan bir istisna yoktur ve program çalışır: 
"33.0 honey was produced by 7 bees from 2 honey plants"
Şimdi her şey yoluna girecek ama bu cevap yanlış... README dosyasındaki
## Documentation
Presentation based on honey production.
**Note**: 2 units of nectar = 1 unit of honey
Ana yöntemde sırasıyla 30 ve 40 birim nektar içeren iki bal bitkisi vardır. Yani sonuçta 35 birim bal almalıyız. Ama program bize 33 aldığımızı söylüyor. Diğer iki birim nereye gitti? Hadi bulalım! Bunu yapmak için, Main.main()
28. satırdaki yöntemde bir kesme noktası ayarlayın, burada beeHive.populateHoney()
çağrılır ve main()
yöntemi Hata Ayıklama modunda çalıştırın: 



- F8 — Yöntemlere geçmeden kodda adım adım ilerleyin;
- F7 — Kodda adım adım ilerleyin ve yöntemlere adım adım ilerleyin.
beeHive.populateHoney()
. Adım adım şunu elde ederiz: Şimdi bu yöntemi adım adım ilerletmek ve içinde ne olduğunu açıklamak için F8'i
- Satır 25 — Stream API, tüm arılardan nektar toplamak için kullanılır
- Satır 26 — Yeni oluşturulan bal mevcut bala eklenir;
- Satır 27 — Kraliçeye 2 birim bal tahsis edilir
- Satır 28 — Bu iki birim toplam bal miktarından çıkarılır.
- Satır 29 — Kraliçe bu balı yer.
## Documentation
Presentation based on honey production.
**Note**:
* 2 units of nectar = 1 unit of honey
* The queen bee eats 2 units of honey every time when beehive is replenished with honey.
Yapılmıştı. Bulduğumuz tüm hataları düzelttik. Sakin bir şekilde kendini beğenmiş bir bakışla devam edebilir, biraz kahve yudumlayabilir ve Özetleyelim
Bu yazıda şunları öğrendik:- herkesin çalışmasında hatalar vardır ve hata ayıklama, bunları düzeltmenin harika bir yoludur
- kesme noktası nedir ve ne tür kesme noktaları vardır
- bir istisna kesme noktası nasıl ayarlanır
- hata ayıklama modunda kodda adım adım ilerleme
GO TO FULL VERSION