我有一个具有匿名内部类的方法。我想从匿名内部类内部抛出一个未经检查的异常,并在类外部捕获它。我很难做到这一点。

@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
            }
        }
    });
}

我的异常没有被捕获。我究竟做错了什么?

最佳答案

您在回调方法中抛出异常。

回调方法永远不会被调用,它不会被同步调用,或者
最终调用回调方法的代码正在捕获它。

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

10-07 19:00
查看更多