在未捕获的匿名内部类中引发异常

时间:2018-06-28 05:05:54

标签: java android

我有一个具有匿名内部类的方法。我想从匿名内部类内部抛出未经检查的异常,并在类外部捕获它。我在执行此操作时遇到了麻烦。

@Override
public void showAchievements(){

    androidLauncher.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            try {
                loadingView.showLoadingView();
                Games.getAchievementsClient(androidLauncher, signedInAccount)
                    .getAchievementsIntent()
                    .addOnSuccessListener(new OnSuccessListener<Intent>() {
                        @Override
                        public void onSuccess(Intent intent) {
                            throw new RuntimeException("Test exception");
                        }
                    });
            }  catch (Exception e){
                // Not catching
            }
        }
    });
}

未捕获我的异常。我在做什么错了?

2 个答案:

答案 0 :(得分:2)

您在回调方法中引发了异常。

要么从不调用回调方法,要么不同步调用它,或者 最终调用回调方法的代码正在捕获它。

没有看到更多的代码,就不可能说出哪个。

答案 1 :(得分:0)

这是因为您必须在onSuccess方法内移动try-catch语句。稍后将调用该侦听器。