2015-08-13 12 views

cevap

10

Swift belgelere:

bir işlev veya yöntem bir hata atabilir belirtmek için Hatalar

Fırlatma, onun parametrelerden sonra, onun bildiriminde anahtar kelimeyi atar yazın. bir dönüş türü belirtirse, dönüş okundan (->) önce throws anahtar kelimesini yazarsınız. Açıkça belirtilmedikçe, bir işlev, yöntem veya kapatma bir hatasını alamaz. Orada

Hata'nın çeteleler kullanılarak temsil edilen Apple's documentation burada bu konu hakkında bilgi hazinesi, yani bunu yapmak için throw anahtar kelime kullanmak sonra bir enum üzerinden mi olacak bazı hata oluştur

.

örnek:

enum MyError: ErrorType{ 
    case FooError 
} 

func foobar() throws{ 
    throw MyError.FooError 
} 
7

Öncelikle, kullanarak hataları çağırabilir, hatalarınızı içeren bir enum oluşturmak ve sonra ErrorType protokol

enum MyError: ErrorType{ 
    case Null 
    case DivisionByZero 
} 

uygular olabilir throw

throw MyError.DivisionByZero 

Yani, bir bölümü işlev olabilir bu gibi görünün

func divide(x: Int, y: Int) throws -> Float{ 
    if(y == 0){ 
     throw MyError.DivisionByZero 
    } 
    else{ 
     return x/y 
    } 
} 
+0

Bu işlev 'docatch' yöntemiyle nasıl çağrılır? Örneğin, "checkisValidIntValue (x: 10, y: 20); func checkisValidIntValue (x: Int, y: Int) {guard x> 0 else {att some.Error} throw değeri = deneyin? bölmek (x: x, y: y) // ... burada başarı değeri olduğunda ne yapmalı ve başarısızlık değerini atmak istiyorum, ouptu değeriyle aynı işlevi yerine getirmek – user3589771

İlgili konular