19099


お世話になります。

Swift2.0で、

<http://d.hatena.ne.jp/scientre/20150527/get_network_status_in_swift>

の記事に従って、  
`Reachability` というライブラリを用いてインターネット接続の検出をしたいと思っています。

記事最下部の説明の通り、  
「ネットワークに接続や切断したときに何か処理をしたいという場合の書き方」として、

[code]

    let reachability = AMReachability.reachabilityForInternetConnection()
    // エラー（Call can throw, but it is not marked with 'try' and the error is not handled）
            reachability.whenReachable = { reachability in
                print("インターネット接続あり")
            }
            reachability.whenUnreachable = { reachability in
                print("インターネット接続なし")
            }
    
    reachability.startNotifier()
    // エラー（Call can throw, but it is not marked with 'try' and the error is not handled）
    
[/code]

とすると、

> Call can throw, but it is not marked with 'try' and the error is not handled

というエラーがでます。

どのようにエラーハンドリングを書けばいいのでしょうか？

よろしくおねがいします。


CC BY-SA 3.0
2015-11-20T14:27:52.710
19096
2015-11-20T17:47:49.397
2015-11-20T14:45:31.773
12297
12297
question
swift
Swift2.0で、Reachability.swiftのエラーハンドリングの書き方がわからない。


「reachabilityForInternetConnection」メソッドはコードを見ると「ReachabilityError」というenumをエラーとして投げるので、次の様に、do-
try-catchで、「ReachabilityError」を捉えるような、エラー制御を書けば良いと思います。

[code]

    do {
        let reachability = try AMReachability.reachabilityForInternetConnection()
        if reachability.isReachable() {
            print("インターネット接続あり")
        } else {
            print("インターネット接続なし")
        }
    } catch let error as ReachabilityError {
        // エラー処理
    } catch let error as NSError {
        // NSErrorが投げられた場合
    } catch {
        // その他ハンドル出来なかったもの
    }
    
[/code]

「reachabilityForInternetConnection」メソッドのように「throws」が宣言された、エラーを投げるメソッドは「try」付きで呼び出す必要があります。「Call
can throw, but it is not marked with 'try' and the error is not
handled」はそのことを意味しています。


CC BY-SA 3.0
2015-11-20T16:35:15.393
19099
2015-11-20T17:47:49.397
2015-11-20T17:47:49.397
8986
8986
19096
answer