title: IOS: Call can throw, but is not marked with 'try' and the error is not handled
body: <p>After googling this topic and reading other people's answers to other topics and implementing their suggestions into mine, I still can't figure this out.</p>
  
  <p>In my code:         </p>
  
  <pre><code>import Foundation
  
  protocol WeatherServiceDelegate {
       func setWeather(weather: Weather) 
  }
  
  class WeatherService {
       var delegate: WeatherServiceDelegate?
  
       func getWeather(city: String) {
           let path = "http://samples.openweathermap.org/data/2.5/weather?q=London,uk&amp;appid=b1b15e88fa797225412429c1c50c122a1"
           let url = URL(string: path)!
           let session = URLSession.shared
           let task = session.dataTask(with: url) { (data: Data?, response: URLResponse?, error: Error?) -&gt; Void in
               if let data = data {
                   //print("&gt;&gt;&gt;&gt;\(data)")
  
                   let json = JSON(data: data)
               }
           }
  
           task.resume()
        }  
  }
  </code></pre>
  
  <p>I get the error from this line. The little red arrow is right under the 'J' in JSON...</p>
  
  <pre><code>let json = JSON(data: data)
  </code></pre>
  
  <p>And the error being:</p>
  
  <blockquote>
    <p>Call can throw, but is not marked with 'try' and the error is not handled</p>
  </blockquote>