Atma hataları ile güvenli tipte basit bir yol yoktur. Derleyici, throws MyErrorType
'u belirtmenize izin veriyorsa, o zaman bu işlev gövdesinde, bir do/catch bloğu dışında farklı türde bir yazı atabilecek bir işlevle try
olmadığından emin olmanız gerekir. (Eh var ama gereksiz karmaşıklık katmanları ekleyecektir). Hızlı derleyici zaten yavaş olabilir ve türler çıktığında döngüler halinde sıkışabilir, Thrown türlerini çıkarıp atma işlevleri bir kâbus olabilir.
Çalışan fikir, hataların çoğu için, bunları her zaman küçük bir alt kümede ele alacağınızdır.
söyleniyor
, ekstra catch let error as MyErrorType
maddelerini eklemek için gerek sadece şöyle bir catch bloğunda bir anahtarı kullanabilir, orada:
do {
try something()
} catch let e {
switch e {
case let m as MyErrorType: handleMyError(m)
case let o as OtherErrorType: handleOther(o)
case is ThirdErrorType: print("error \(e)")
default: handleElse(e)
}
}
Hayır, sen ... –
İlgili edemez: http://stackoverflow.com/questions/30740997/what-is-the-difference-between-swift-2-0-do-try-catch-and-regular-java-cc-ex. –