Как сравнить пойманное исключение со стандартными исключениями в асинхронной задаче Android? - PullRequest
8 голосов
/ 27 августа 2011

Я новичок в Java и Android. Я использую асинхронную задачу в своем проекте для получения некоторых данных из веб-службы, столкнулся с некоторыми проблемами при обработке исключений. Я передал этот SO вопрос , и я следую схеме, предложенной CommonsWare в этой ссылке .

Мне удалось перехватить исключения и сохранить их в переменной исключения. Мне нужно сравнить перехваченное исключение с некоторыми стандартными исключениями в методе onPostExecute, также я хотел бы отображать пользовательские сообщения об ошибках, основанные на этом. Как я могу сравнить это пойманное исключение со стандартными исключениями? Любая помощь будет оценена. Спасибо.

1 Ответ

19 голосов
/ 27 августа 2011

Использовать Instanceof ключевое слово java. Возвращает true, если экземпляр объекта имеет правильный тип.

if(e instanceof SomeStandardException)

Примечание: instanceof возвращает true как для точного типа, так и для всех родительских типов. Поэтому, если вы используете его в каскадном if-elseif, тогда поместите больше конкретных типов вверху и более общие (родительские) типы внизу.

Примечание 2: перехват общих символов Exception, как предлагается в ссылке, является плохой практикой - вы должны ловить только те исключения, которые хотите обработать Таким образом, вместо того, чтобы сохранять исключение, вы должны перехватить конкретное исключение через try-catch-catch, сохранить соответствующий флаг (возможно, логическое поле) и затем воздействовать на этот флаг.

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