C# Derleme Hataları

Muhammet Ali
9 Haziran 2015 Salı
0

Derleme hatalarını programlama dilinin kurallarına uymayan (Sözdizimi Hatası, Syntax Eror) veya derleyicinin her durumda hata vermesi kesin olan (Derleyici Hatası, Compiler Error) kodlar yazıldığında gerçekleşir. Sözdizimi hatasına örnek olarak şunu verebiliriz:

C# için değişken tanımlama kuralı şöyledir:

[Geçerli Bir Veri Tipi] [Değişken Adı];

Ayrıca değişken adının rakamla başlamaması, boşluk veya özel karakter barındırmaması gibi tanımlama ile başka kuralları da vardır. Eğer bu kurallardan birine uyulmazsa hata alınacaktır.

Örneğin:

int deneme //satır sonunda noktalı virgül yoktur.

int44 deneme; //int44 diye bir veri tipi yoktur.

int 123deneme; //değişken adları rakam ile başlayamaz.

 

Derleyici hatasına örnek olarak da şunu verebiliriz:

int deneme;

deneme = “Yalçın”;

Burada söz dizimi hatası yoktur. İlk satırdaki değişken tanımlaması doğrudur. İkinci satırda ise bir değişkene değer atama söz dizimi doğrudur. Ancak int veri tipi bekleyen bir değişkene string bir değer atandığı için derleyici ikinci satırda hata verecektir.

 

Derleme anında, kodunuzun mantıklı bir şekilde çalışıp çalışmadığı kontrol edilmez; sadece ve sadece kodunuzun 

programlama dilinin sözdizimine uyup uymadığı ve tür dönüşümlerinin doğru yapılıp yapılmadığı kontrol edilir.
Bu yüzden yapı olarak doğru ancak istenildiği şekilde çalışmayan projelerinizde derleme hatası almazsınız.

Eğer kodunuzda derleme hatası yapmışsanız,  uygulamanızı  çalıştırmak  istediğinizde Visual Studio, Şekildeki hata penceresini gösterecektir. 

Buradaki mesajın Türkçesi şu şekildedir: “Uygulamanızda derleme hataları bulunmuştur.Devam etmek ve en son başarılı şekilde derlenen uygulamanızı çalıştırmak ister misiniz?”

Bu pencerede “Yes”   (Türkçe işletim sistemlerinde “Evet”) düğmesine tıklarsanız programınız o anki haliyle değil, var ise en son düzgün çalıştığı haliyle çalışacaktır. Örneğin, ekrana sadece bir mesaj kutusunda “Merhaba” yazısı gösteren bir uygulama yazdınız. Çalıştırdınız ve bir sorun çıkmadı. Uygulamanız tam istediğiniz gibi çalıştı. Daha sonra uygulamanıza, internete bağlanıp, İstanbul’un hava durumunu çekip, bunları kullanıcıya gösteren kodlar eklediniz. Bu işlemleri yaparken de formunuza TextBox, ProgressBar, ListBox gibi birçok kontrol eklediniz. Ancak değişken tanımlanan bir satırda yanlışlıkla satırın sonuna noktalı virgül koymayı unuttunuz. Uygulamanızı görmek için çalıştırdığınızda, derleme hatanız olduğu için Şekil 5.2’deki hata penceresini göreceksiniz. Eğer “Yes” seçeneği ile devam ederseniz yeni oluşturduğunuz formu ve hava durumu görmek yerine, daha önceki uygulamanızı yani ekranda size sadece “Merhaba” diyen bir mesaj kutusu göreceksiniz. Çünkü yeni yazdığınız kodlarda derleme hatası olduğu için yeni kodlarınız değil, bir önceki hatasız kodlarınız çalışacaktır. Buradan şu sonucu çıkarabilirsiniz; eğer binlerce satırlık programınızın sadece bir yerinde derleme hatası yaparsanız, bundan sadece o kodun dahil olduğu bölüm değil (örneğin hatalı satırın olduğu bir düğmenin tıklanma olayı) tüm proje etkilenir. Bu sebeple projelerinizde hiçbir şekilde derleme hatası bulunmamalıdır.

enlightenedŞekil 5.2’deki mesaj çıkınca asla “Do not show this dialog” seçeğini işaretleyip “Yes” düğmesine tıklamayın. Bu durum, derleme hatalarına sahip bir uygulama başlatılmaya çalışıldığında size uyarı çıkarmadan otomatik olarak eski çalışır sürümü göstermesine neden olur. Eğer böyle bir durumla karşılaşmışsanız tekrar eski ayarlara getirmek için Visual Studio’nun Tools menüsünün altındaki Options seçeneğini tıklayın. Karşınıza çıkan listeden Projects and Solutions düğümünü kenarındaki artı işaretine tıklayarak açın ve Build and Run seçeneğini seçin. Sağ tarafta açılan ekrandaki “On Run, when build or deployment errors occur:” yazılı combobox’ta “Prompt to launch” seçeneğini seçip, OK düğmesine tıklayın. 

Eğer Şekildeki pencerede “No” düğmesine tıklarsanız, Şekilde görülen Error List penceresi ortaya çıkacaktır. Bu pencerede uygulamada geçen tüm derleme hatalarının bir listesi sunulur.

Her satırda, hatanın tanımı, hangi dosyada, satırda, sütunda ve projede olduğu gösterilir. Örneğin Şekil 5.3’teki hata satırı tam olarak şunu ifade eder: Hatalar (Project) adlı proje içerisindeki Form1.cs (File) adlı kod dosyasının 26. (Line) satırının 21. (Column) karakterinde, int veri tipi bekleyen bir değişkene “string” bir değer atanmaya çalışılmış. (Description) Sizin için gereken en önemli sütun tanım (description) sütunudur. Diğer sütunlardaki bilgiler sizi çok fazla ilgilendirmez. Çünkü hatayı görebilmek için ilgili projedeki, ilgili dosyayı açıp, satır ve sütun saymazsınız. Bunu Visual Studio sizin için otomatik olarak yapar. Hatayı görmek için, Error List penceresindeki hatayı gösteren satıra çift tıklamanız yeterlidir. Visual Studio imleci hatanın olduğu noktaya konumlandırır.Ayrıca hatanın altı kırmızı renkte çizilir.

enlightenedHatalı yerdeki alt çizginin rengi hatanın tipini de belirtir. Kırmızı, sözdizimi hatalarında, mavi derleyici hatalarında kullanılır. Eğer alt çizginin rengi yeşil ise ilgili yerde hata yoktur, sadece bir uyarı vardır.

Projenizde kod yazmayı bitirdikten sonra derleme hatası olup olmadığını kontrol etmek mantıklı bir iş değildir. Hatalar, kod yazılırken sık aralıklarla kontrol edilmelidir. Projeyi test etmek için her seferinde çalıştırmak bir süre sonra tam bir işkence olur. Çünkü amaç sadece projede derleme hatası olup olmadığını görmektir. Ancak çalıştırılarak test edilmeye kalkışılırsa, hata varsa Şekildeki pencere karşınıza çıkar ve buradan “No” düğmesine tıklayıp hataları görürsünüz. Eğer hata yoksa uygulama boşu boşuna açılır. Hele bir de ilk açılışta uzun süren bir işlem yapıyorsa (internetten bilgi indirmek, veritabanına bağlanıp veri çekmek gibi) boş yere vakit kaybederseniz.Derleme hata mesajlarını görmek için uygulamayı çalıştırmak yerine derlemeyi (Build) tercih etmelisiniz. Derleme işlemini ya Visual Studio’nun Build menüsü altındaki “Build [Proje Adı]” seçeneğini tıklayarak ya da CTRL+Shift+B kısayolu sayesinde gerçekleştirirsiniz.

enlightenedYazılım geliştirme ile yeni tanışmışsanız her yazdığınız satırdan sonra CTRL+Shift+B kombinasyonunu kullanarak proje derlemeyi alışkanlık haline getirmelisiniz. Zaman içerisinde kazandığınız deneyimle beraber derlemelerin sıklığını biraz daha azaltabilirsiniz.

Bu yüzdendir ki deneyimli .NET  yazılımcılarının klavyelerindeki  CTRL,Shift ve B tuşları diğer tuşlara   nazaran   dahafazla   aşınmıştır. Eğer derleme işlemi başarı ilegerçekleşirse Visual Studio’nun en alttaki Status Bar’ının solunda “Build Succeeded” (Derleme başarı ile gerçekleşmiştir.) yazısı görünür. 

 

 

 

 

 

 



Yorum yaz