Catch Try让我在Android Studio调试中感到困惑

时间:2013-10-10 21:36:22

标签: java android android-studio

我正在尝试在Android Studio中调试这段代码。这一切看起来都非常简单,但尝试中的'返回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永远不会被解雇。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

尝试“文件 - &gt;无效缓存”并重新启动。

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

我使用了一些我在互联网上找到的代码并且它抛出异常。他们没有让异常泡沫化,而是将细节放入自定义对象中,并且他们正在传递它。好吧,我不喜欢这样,我试图改变它,但我遇到了很大的困难。

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

在我的更改后抛出异常时,堆栈跟踪没有任何意义,所以我决定直接调用C。当抛出异常时,我仍然看到A&amp;即使我绕过它们,B仍在追踪中。然后我完全删除了A&amp; B来自我的项目,但他们仍然出现在追踪中。 WTF !!!

经过一段时间拉扯我的头发后,我恢复了缓存,重新启动,问题得到了解决。