2015-03-06 4 views
0

Просто интересно, если это правильная структура для использования с TRY и исключениями:throws Исключение правильной структуры?

MediaPlayer.OnCompletionListener videoViewCompletionListener = new MediaPlayer.OnCompletionListener() { 
    @Override 
    public void onCompletion(MediaPlayer mp) throws IllegalStateException { 
     try { 
      mp.stop(); 
      mp.release(); 
      videoView.stopPlayback(); 
     } finally { 
      toastDisplay.cancel(); 
      toastDisplay = Toast.makeText(MainActivity.this, "Completed Video", Toast.LENGTH_LONG); 
      toastDisplay.show(); 
     } 
    } 
}; 

Будет ли это вызвать сбой мое приложение или нет, когда я сделать это таким образом, упаковывают он бросает IllegalStateException в этом примере?

+0

Вы должны добавить предложение catch –

+0

Не существует ли во избежание использования предложения catch? –

ответ

0

В заявлении указано, что ваш метод выдает IllegalStateException. Тем не менее, вы никогда не поднимаете исключение для обработчика вызова. Если исключение, которое вы хотите выбросить, вызвано методом MediaPlayer, вам необходимо иметь блок catch. В этом только throw исключение для вызова вызывающего.

enter image description here

Кроме того, Exception handling : throw, throws and Throwable хорошо читать.

+0

Значит, его невозможно сделать так, как будто я хочу это сделать и игнорировать исключение? Не возражаете ли вы сделать пример из моего примера? –

+0

Да, если вы хотите, чтобы приложение продолжало делать свои вещи, вы можете окружить, попробуйте только метод, который может вызвать исключение. Затем выполнение будет CODE, CODE, TRY, (если исключение CATCH), CODE CODE. Последовательный, как всегда. Вам также нужно будет добавить некоторый нулевой контроль после try/catch из-за исключения, возможно, выброшенного –

+0

@MohamedAllouch, joaquin сказал ( –

Смежные вопросы