###前提・実現したいこと
エラーが出たときに例外処理をしたい。
任意のURLをNSDataからエンコーディングする際に、
- エラーが出ないNSData
- エラーが出るURL
があります。
エンコーディングがうまくいかないときにアプリが止まってしまいます。
do try catch の例外処理はアプリが止まってしまうようなエラーは対象外のようでどう対応すればいいのかアドバイスいただければありがたいです。
可能であればエラーの出るURLのエンコーディングのエラーをなくす。
上記は難しいそうなのでエラーが出たときにはアラートを出すなど別の処理をしたい。
###発生している問題・エラーメッセージ
override func viewDidLoad() { super.viewDidLoad() self.test() } func test() { do { try self.method() print("成功") } catch { print(error) print("不明なエラーが発生しました。") } } func method() throws{ //エラーがでないURL //let urlString = " http://headlines.yahoo.co.jp/hl?a=20170104-00511411-soccerk-socc" //エラーが出るURL //http://www.yahoo.co.jp/ //https://www.google.co.jp/search?sourceid=chrome-psyapi2&ion=1&espv=2&ie=UTF-8&q=%E3%83%AF%E3%83%B3%E3%83%94%E3%83%BC%E3%82%B9&oq=%E3%83%AF%E3%83%B3%E3%83%94%E3%83%BC%E3%82%B9&aqs=chrome..69i57j0l5.1662j0j4 let urlString = "https://www.google.co.jp/search?q=%E8%80%83%E5%AF%9F%E7%8E%8B&oq=%E8%80%83%E5%AF%9F%E7%8E%8B&aqs=chrome..69i57j69i65j69i59j69i61l3.3739j0j7&sourceid=chrome&ie=UTF-8" let encString = urlString.addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed) let url = Foundation.URL(string: encString!) let data = NSData(contentsOf: url! as URL) //ここでエラー アプリが止まってしまいます let str = (NSString(data:data as! Data, encoding:String.Encoding.utf8.rawValue) as? String)! }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/01/05 10:58
2017/01/05 12:07
2017/01/07 04:15