2015-11-18 2 views
0

Когда вы обнаружите стороннюю функцию или метод в Swift, которая выдает ошибку, есть ли способ узнать, какие ошибки он может выбросить?Функции или методы, которые вызывают ошибки в Swift

Эта информация недоступна в виде функции или метода. Он говорит только, что это что-то бросает ...

+0

Если API/документация не говорит вам, то вы можете» Знаю. – matt

+0

определенно звучит как ошибка, а не функция. Отправьте это как ответ, и я приму это. – cfischer

ответ

0

ошибка распространяется стандартным способом. пытаются имитировать ошибку, передавая неправильные данные функции или отключить некоторые аппаратные средства (например, сетевой адаптер ...) и попытаться сбросить его

import Foundation 

func foo() throws ->Void { 
    // anonymous Error 
    struct Error: ErrorType { 
     var msg = "error msg" 
    } 
    throw Error() 
} 

func boo() throws ->Void { 
    // anonymous NSError 
    let e = NSError(domain: "domain", code: 100, userInfo: nil) 
    throw e 
} 


do { 
    try foo() 
} catch let e { 
    print("foo throws:", e.dynamicType) 
    dump(e) 

} 
do { 
    try boo() 
} catch let e { 
    print("boo throws:", e.dynamicType) 
    dump(e) 
} 
/* prints 

foo throws: (Error #1) 
▿ (foo() throws ->()).(Error #1) 
- msg: error msg 
boo throws: NSError 
▿ Error Domain=domain Code=100 "(null)" #0 
- NSObject: Error Domain=domain Code=100 "(null)" 

*/ 
Смежные вопросы