1
私はSwiftのtry &キャッチコンストラクトに慣れようとしています。 申し訳ありませんが、関連する記事で回答が見つかりませんでした。ファンクションまたはクラス内での迅速なtry-catch処理
ここに示すように、これを関数またはクラスに非表示にすることはできますか?
class Test {
enum TestError:ErrorType{
case a
case b
}
func a(s:String) throws -> String{
if s == "OK" {
return "OK"
}else{
throw TestError.a
}
}
func b(s:String) throws -> String{
if s == "OK" {
return "OK"
}else{
throw TestError.b
}
}
func doTest(str:String) -> String{
do{
let s = try a(b(str)) // <= ERROR
}catch TestError.a{
return "a failed!"
}catch TestError.b{
return "b failed!"
}
}
} 私はいつも
error: errors thrown from here are not handled because the enclosing catch is not exhaustive
を得ることは不可能とメインプログラムでのみ適用原則的にですか? または方法がありますか?
素晴らしい!どうもありがとう!これは問題を解決するようだ(もちろん、私はリターンを忘れてしまった!)。しかし、正直なところ、私はObj-CとSwiftスターターに慣れていないので、何が起こっているのか分かりません。このerror.descriptionはどこに定義されていますか? – pawi
エラーのスローから戻ってくる追加情報(例外の特定の原因)は何とかできますか? – pawi