Android:在一个活动中抛出的异常未在另一个活动中捕获

时间:2017-07-24 01:57:52

标签: android

我有一个ReaderActivity.java类,我在signData.java类中调用signString。如果一切正常,则会创建名为ProductActivity的新活动。如果signString方法中存在异常,则不应创建ProductActivity

问题是,即使我在日志中看到ProductActivity消息,我仍然会看到KSIEXCEPTION已创建。我在这里缺少什么?

public class ReaderActivity extends AppCompatActivity {
.....
public void setGlobal(String actualData) {
signData sign = new signData();

                try {
                    sign.signString(getBaseContext(), finalResults, countToSend, locToSend, typeToSend);

                    Intent productIntent = new Intent(getBaseContext(), ProductActivity.class);
                    startActivity(productIntent);

                } catch (Exception e) {
                    e.printStackTrace();
                }

}
}

现在在signData类中我有方法

public class signData extends Activity{
public void signString(Context context, String data, String count, String loc, String type){

 try {
     /*some http connection code here*/
     /*some computation related to specific API*/
  }
 catch (KSIException e) {
            Log.i("KSIEXCEPTION","here");
            e.printStackTrace();
        }

}

}

1 个答案:

答案 0 :(得分:0)

  1. 您无法为此类活动创建对象。 signData sign = new signData();
  2. 2

      

    问题是,即使我看到,我仍然会看到ProductActivity已创建   日志中的KSIEXCEPTION消息。我在这里缺少什么?

    是的,您只是在signString方法中捕获异常,因此在明确执行此方法后,它将创建下一个活动。

    如果您不想转到下一个活动,可以将该方法移动到某个实用程序类,并且您可以获得一些返回值(至少是布尔值),并根据您可以移动到下一个活动