我正在创建一个Android应用程序,它接受用户输入,尝试使用指定的输入建立与API URL的连接并检索数据并显示它.现在我已经能够完成上述所有工作,但是如果用户输入某些内容并且它不存在,我的应用程序可能会因为NPE(空指针异常)而崩溃.
我正在使用的API向我显示了可能发生的响应错误列表,但我不确定如何处理或实现将这些响应错误考虑在内的功能.
目前我的扩展AsyncTask类有以下参数:String,Void,JSONObject和以下代码是我在doInBackground方法中的代码.
URL url = new URL(params[0]); urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.connect(); int statusCode = urlConnection.getResponseCode(); switch (statusCode) { case 400: return "Error 400 - Bad request."; case 401: return "Error 401 - Unauthorized request."; }
我无法返回一个String,因为我的AsyncTask参数返回一个JSONObject.我可以改变它,所以它确实返回一个字符串,但我认为这不是处理响应错误的正确逻辑方式.
现在,如果API响应代码是404(找不到数据),我不希望应用程序崩溃,因为它无法返回JSONObject,而是我希望它继续下一个片段并显示最少的信息.
那么当我的方法返回JSONObject时,如何处理响应错误呢?