swift3でエラー処理が混乱しました。 IN 1Swift 3のエラー処理に混乱しました
class MyClass {
enum error: Error
{
case nilString
}
func findURL() {
do {
let opt = try HTTP.GET(url_adr!)
opt.start { response in
if let err = response.error {
print("error: \(err.localizedDescription)")
return //also notify app of failure as needed
}
do
{
/* This is func1. and got error. I want to if this function has error then go next function. */
try self.stringOperation(data: response.description)
}
catch{
print("doesn't work on func1. trying 2nd func")
self.stringOperation2(data:response.descritption)
}
}
} catch let error {
print("got an error creating the request: \(error)")
}
}
func stringOperation(data:String)throws -> Bool{
do{
/** 1 **/
if let _:String = try! data.substring(from: data.index(of: "var sources2")!){
print("its done")
}else{
throw error.nilString
}
: 「致命的なエラー:私はこのラインでこの致命的なエラーを得た予想外に、私は私が私がしようとするものをお見せしましょう 「XX関数がエラーを得たならば、YY機能を試してみてください」のようにやってみてくださいオプション値をアンラッピングしている間はゼロが見つかりました "とプログラムがクラッシュしました。 エラー処理を私のグーグルが理解し、私のコードに適用しようとしました。しかし、まだ成功していない。誰かが私が間違って説明したことができますか?
追加情報:.substring(from:...)、および.index(of: "str")の文字列拡張を取得しました。だから、これらの行はあなたを混乱させません。あなたが代わりに
if let _: String= try! data.substring...
を持っている一般的なルールとして
プログラムがクラッシュした行番号、または見つからない行番号を –
エラー行が "/ ** 1 ** /"メッセージの下に...ただし、tbogosiaの答えが解決されました...ありがとう – Antiokhos