我有一个angular2服务,它调用一个我希望返回一个对象的服务器。出错时,服务器返回HTML Error网页。
我希望捕获何时返回该网页而不是对象,以便在map()
函数中对响应应用map()
方法,这将导致错误。
我尝试在getServerObject(objId: string) : Observable<ServerObject> {
const url = environment.serverURL + '?objId=' + objId;
return this.http.get(url)
.map( res => {
try {
res.json();
} catch(err) {
console.error('ERROR: ' + err);
}
} )
.catch(this.handleServerError);
}
部分尝试使用try-catch块:
catch
不幸的是,即使res.json();
失败,执行也永远不会到达var request = URLRequest(url: NSURL.init(string: "YOUR_URL") as! URL)
request.httpMethod = "POST"
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.timeoutInterval = 10 // 10 secs
let postString = "param1=\(var1)¶m2=\(var2)"
request.httpBody = postString.data(using: .utf8)
Alamofire.request(request).responseJSON {
response in
// do whatever you want here
}
块。
我能做些什么才能抓住这个案子?