日志cat中没有异常,但我的代码将转到异常部分


lvchartid.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<> parent, View view, int position,long id) {
        final String item = ((TextView)view).getText().toString();
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    WebConnectionHelper con = new WebConnectionHelper("PatientChartGynologicalHistroySelect");
                    con.Addparameter("accountno", "10011065");
                    con.Addparameter("chartid", item);
                    con.intiateConnection(Checkcharts.this);
                    result = con.GetOutPut();
                    if (result == null) {
                        Log.e("Search result", "null");
                    } else
                    Log.e("Search result", result.toString());
                    } catch (Exception e) {
                    e.printStackTrace();
                    Log.e("Error search", e.toString());
                }
                if (result == null) {
                    return;
                }
                try{
                    SoapObject tempobj = (SoapObject)result.getProperty(0);
                    result = (SoapObject) tempobj.getProperty(1);
                    chartspatient = new ArrayList<getset_chartspatient>();
                    SoapObject property = (SoapObject) result.getProperty(0);
                    for (int i = 0; i < property.getPropertyCount(); i++)
                    {
                        SoapObject category_list = (SoapObject) property.getProperty(i);
                        Log.e("Result", category_list.toString());
                        getset_patientsinglechart chartssingle = new getset_patientsinglechart();
                        chartssingle.setPATIENT_GYNECOLOGIC_HISTORY_ID(category_list.getPropertySafelyAsString("PATIENT_GYNECOLOGIC_HISTORY_ID","").toString());
                        chartssingle.setCURRENTLY_SEXUALLY_ACTIVE(category_list.getPropertySafelyAsString("CURRENTLY_SEXUALLY_ACTIVE","").toString());
                        chartssingle.setAGE_FIRST_SEXUAL_INTERCOURSE(category_list.getPropertySafelyAsString("AGE_FIRST_SEXUAL_INTERCOURSE","").toString());
                        chartssingle.setSEXUAL_PROBLEMS(category_list.getPropertySafelyAsString("SEXUAL_PROBLEMS","").toString());
                        chartssingle.setCONTRACEPTION(category_list.getPropertySafelyAsString("CONTRACEPTION","").toString());
                        chartssingle.setMENOPAUSE(category_list.getPropertySafelyAsString("MENOPAUSE","").toString());
                        chartssingle.setFIRST_MENARCHE_AGE(category_list.getPropertySafelyAsString("FIRST_MENARCHE_AGE","").toString());
                        chartssingle.setLNMP(category_list.getPropertySafelyAsString("LNMP","").toString());
                        chartssingle.setMENARCHE_CYCLE(category_list.getPropertySafelyAsString("MENARCHE_CYCLE","").toString());
                        chartssingle.setMENARCHE_FLOW(category_list.getPropertySafelyAsString("MENARCHE_FLOW","").toString());
                        chartssingle.setFREQUENCY(category_list.getPropertySafelyAsString("FREQUENCY","").toString());
                        chartssingle.setGRAVIDA(category_list.getPropertySafelyAsString("GRAVIDA","").toString());
                        chartssingle.setPARA(category_list.getPropertySafelyAsString("PARA","").toString());
                        chartssingle.setABORTIONS(category_list.getPropertySafelyAsString("ABORTIONS","").toString());
                        chartssingle.setPregnant(category_list.getPropertySafelyAsString("Pregnant","").toString());
                        chartssingle.setEDD(category_list.getPropertySafelyAsString("EDD","").toString());
                        singlecharts.add(chartssingle);

                        //        Log.d("Data",""+chartssingle.toString());
                    }
                    //the data not adding to the data holder class here
                    DataHolder.singlechartsofpatient = singlecharts;
                    //    Intent intent = new Intent(Checkcharts.this,Checkcharts.class);
                    //intent.putExtra("extra_text", item);
                    //    startActivity(intent);
                }
                //here is the exception
                catch (Exception e) {
                    // TODO: handle exception
                }
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                    }
                });
            }
        }).start();
    }
});

logcat中没有异常,因为默认情况下logcat只显示未捕获的异常。如果您捕获了异常(正如您正在做的那样),那么异常永远不会传播到logcat正在侦听的程序的顶层。

如果你想在发现异常后将其记录到logcat,你可以执行以下操作:

try {
    //raise new Exception("ERROR!!")
} catch (Exception e) {
    //Log to logcat:
    Log.d("My exception", e.getMessage(), e);
}

附带说明一下,您永远不应该通过只捕获Exception来执行通用的"全部捕获"。试着对你试图捕捉的异常更加具体,这样你就知道你在正确地处理特定的情况。

最新更新