Kodum Swift 3'e geçiyorum ve aynı/birkaç uyarıları benim/try/catch bloklarımla görüyorum. Bir ödevin sıfırlanıp geri dönmediğini kontrol edip çalışmazsa konsola bir şeyler yazdırmak istiyorum. Yakalama bloğu, "do 'bloğunda hiçbir hata atılmadığı için erişilemiyor" diyor. Tüm hataları bir catch bloğuyla yakalamak istiyorum.Swift'te hata işleniyor 3
let xmlString: String?
do{
//Warning for line below: "no calls to throwing function occurs within 'try' expression
try xmlString = String(contentsOfURL: accessURL, encoding: String.Encoding.utf8)
var xmlDict = XMLDictionaryParser.sharedInstance().dictionary(with: xmlString)
if let models = xmlDict?["Cygnet"] {
self.cygnets = models as! NSArray
}
//Warning for line below: "catch block is unreachable because no errors are thrown in 'do' block
} catch {
print("error getting xml string")
}
Atama hatalarını ele alacak düzgün bir try catch bloğu nasıl yazarım?
Aslında 'try' önce yerine doğru atma yönteminden önce yazılmalıdır:
Böyle bir şey yazabilirsiniz: Kendi hata bu tür having ile
sonucu içeren değişken - 'xmlString = String (...' yi deneyin ancak bu yöntem Swift 3'teki bir hatayı * attı mı? – vadian
Tek şey, eğer bir nil atamasını döndürüyorsa. Yine de ulaşılamıyor musunuz? – Bleep
A 'do - catch' blok req Bir hata atan en az bir yöntem uyandırır. Dize (contentOfURL: 'bunu yapmak için görünmüyor. Bu arada: Şüphesiz String (contentOfURL:' Swift 3 – vadian