0

我正在尝试在 Android Studio 中调试这段代码。这一切看起来都非常简单,但是尝试中的“return sb1”不允许我打破它(带有 x 的红点)并说它不可执行。

    public static String postRecordOnServer(String url,
       ArrayList<NameValuePair> nameValuePairs) {

       String message = "";
       InputStream is = null;
       try {
            HttpParams httpParameters = new BasicHttpParams();
            int timeoutConnection = 3000;
            HttpConnectionParams.setConnectionTimeout(httpParameters,
                    timeoutConnection);
            int timeoutSocket = 5000;
            HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);

            HttpClient httpclient = new DefaultHttpClient(httpParameters);
            HttpPost httppost = new HttpPost(url);
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();

            BufferedReader reader = new BufferedReader(new InputStreamReader(
                    is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();
            sb.append(reader.readLine());
            String sb1 = sb.toString().toUpperCase();
            reader.close();
            is.close();
            return sb1;
        } catch (Exception e) {
            message = e.getMessage();
        }
        return "EXCEPTION:" + message;
    }

即使它总是返回 'EXCEPTION' 调用函数得到一个 NULL 结果值。Catch 永远不会被解雇。

有什么建议么?

4

2 回答 2

1

您可能会发现一些有用的提示。-

  • 直接尝试通过在方法开始处添加断点来逐步调试,只是为了检查实际发生的情况。

  • 抛出你的例外。返回带有异常的消息不是您应该在函数内部处理问题的方式。您应该在 catch 块中添加一些逻辑,或者只是 make postRecordOnServerthrows Exception,并让调用函数来处理它。

于 2013-10-10T21:47:42.020 回答
0

尝试“文件->使缓存无效”并重新启动。

我想我只是遇到了类似的事情,它对我有用。

我使用了我在互联网上找到的一些代码,它引发了异常。他们没有让异常冒泡,而是将详细信息放入自定义对象中,然后将其传递。好吧,我不喜欢那样,我试图改变它,但我遇到了很大的困难。

涉及三个班级;A、B 和 C。我的代码调用了 A,A 调用了 B,B 又调用了 C,而 C 抛出了异常。

当我更改后抛出异常时,堆栈跟踪毫无意义,因此我决定直接调用 C。当抛出异常时,即使我绕过了它们,我仍然在跟踪中看到 A 和 B。然后我从我的项目中完全删除了 A 和 B,但它们仍然出现在跟踪中。哇!!!!

一段时间后,我将我的头发拉出来,使缓存无效,重新启动,问题得到解决。

于 2014-10-29T04:13:20.373 回答