İçeriğe geç
Türkçe

Hatalar ve sorun giderme

Bu belgeler v0.0.18 deneysel ön sürümünün dondurulmuş kapsamını açıklar. Gerçek yayımlanma durumu ve indirmeler GitHub Releases üzerinde yer alır. Derleyici tanıları deneysel geliştirme sırasında değişebilir. Sorun bildirirken CLI sürümünü, Git commitini, arka ucu, tam komutu ve en küçük kaynak örneğini ekleyin.

Terminal
ku --version
ku -h
ku check hello.ku

ku bulunamazsa yürütülebilir dosyayı çıkarıldığı dizinden çağırın. Windows üzerinde ku.exe kullanın. Varsayılan derlemede Rust veya bağlama kütüphaneleri eksikse kurulum gereksinimlerini denetleyin ve yalnızca CLI’yi kopyalamak yerine tam arşiv düzenini koruyun.

Normal denetleme dosyayı, kaynak konumunu, kaynak parçasını ve mevcut düzeltme önerilerini bildirir. Araç bütünleşmeleri şunu kullanabilir:

Terminal
ku check --json hello.ku

Çıktı JSON Lines biçimindedir; her satırda bir tanı bulunur. Alanlar arasında level, code, message, file, line, column, endLine, endColumn, notes ve helps vardır. Başarı sessizdir; JSON çıktısı olmaması denetimin çalışmadığı anlamına gelmez.

Tanı Yaygın neden Yapılacak işlem
E0105 let kullanımı Değişkeni ilk atamayla bildirin
E0302 bool olmayan if / while koşulu Açık bir mantıksal karşılaştırma yazın
E0601 Bilinmeyen standart kütüphane modülü std.json gibi gerçek modül yolunu denetleyin
E0605 Gerekli açık içe aktarmanın eksikliği Modülü içe aktarın; örneğin import fs from "std.fs"
E0901 Taşınmış değeri okuma Bağımsız bir değeri açıkça klonlayın veya desteklenen eşzamanlı ödünç almayı kullanın
E0913 Ödünç async parametre Sahip olunan parametre kullanın; asıl değer gerekiyorsa çağıran tarafta klonlayın
E0918 Çağrı yerinde &value yazılması Normal argüman geçirin; ödünç almayı imza bildirir

Bu, kayıtlı tanıların özetidir; her hatanın listesi değildir. Güncel belirleyici kayıt src/error.rs içindedir.

Çalışma zamanı hatalarının ayrı bir sözleşmesi vardır

“Çalışma zamanı hatalarının ayrı bir sözleşmesi vardır” başlıklı bölüm

Çalışma zamanı Error domain/code değerleri derleyicinin E kodlarından ayrıdır. Geçersiz JSON, json/parse_error; olmayan nesne anahtarı object/missing_key döndürebilir. Başarısız olabilecek çağrıdan sonra ? kullanın veya alanlarını try/catch içinde okuyun.

import json from "std.json"
fn main() {
try {
json.parse("[1,]")?
} catch (error) {
println(error.domain)
println(error.code)
println(error.message)
}
}

Bu öğretici program bilerek kurtarılabilir ayrıştırma hatası üretir. Bildirilen byte N, sıfır tabanlı UTF-8 bayt konumudur. Çince metin veya emoji çevresindeki karakter sayısı değildir.

ku check başarısı yalnızca ön uç denetiminin başarılı olduğunu gösterir. Yerel C ve LLVM’nin kendi yetenek sınırları vardır. Bir yapı açıkça reddedilirse destek matrisini denetleyin. Zaman aşımını artırmak veya başka arka uçta başarılı olmak desteklenmeyen yolu doğrulamaz.

ku build --native file.ku, -o olmadan yalnızca C yazar. Bir yürütülebilir dosya derleyip bağlamak için ku build --backend c file.ku kullanın ve hedef C araçlarını kurun.

Veritabanı hataları execution_unknown ve execution_completed_without_result otomatik yeniden yürütmeyi tetiklememelidir. İstek ve iş işlemine ait kanıtları koruyun ve önce gerçek yürütme durumunu belirleyin. Yerel web sitesini doğrulamak üretim veritabanı bağlantısı gerektirmez.

Ayrıntılar için depodaki tanı kılavuzuna bakın.