Обработка исключений Android, остановка программы - PullRequest
0 голосов
/ 22 июня 2010

Я пытаюсь поймать исключение при входе в систему, выданное классом, к которому относится readerAccount, в приведенном ниже коде.

while(!readerAccount.isAuthenticated()) {
    try {
        readerAccount.login();
    } catch(AuthenticationException e) {
        cmDialog.show();
        Toast.makeText(this.mCtx, "login failed", Toast.LENGTH_SHORT).show();
        Log.w("Google Reader API","login failed");
        continue;
    }
}

Однако единственная часть оператора catch, которая происходит, - это Log.функция w ().У меня сложилось впечатление, что во время оператора catch у вас есть возможность восстановиться после ошибок, но программа полностью затемняет экран, и диалоговое окно не отображается, равно как и Toast.Что здесь происходит?

Ответы [ 2 ]

0 голосов
/ 24 июня 2010

У меня есть ответ на это.код, который должен быть запущен после взаимодействия с диалогом, всегда должен быть помещен в onClickListener для конкретного отображаемого диалога.таким образом, функция login () должна вызываться из onClickListener, и если происходит неудачный вход в систему, диалог должен вызываться до тех пор, пока не будет выполнен успешный вход.

0 голосов
/ 22 июня 2010

Возможно, что вызов .login () приводит к изменениям других объектов, которые вы используете в операторе catch (особенно, когда что-то идет не так, и выдается это исключение), или к блокировке ресурсов, так или иначе связанных сих, что может объяснить, почему вызовы .show () и .makeTest (...) не работают так, как вы ожидаете, внутри оператора catch.

Возможно, вы захотите попробовать распечатать атрибуты и информациюоб объекте cmDialog перед оператором try и внутри оператора catch перед вызовом .show (), чтобы иметь возможность сравнивать и проверять, не изменяет ли что-либо состояние объекта или состояние каких-либо его используемых ресурсов.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...