只是想知道这是否是一个与try和exception一起使用的正确结构:
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 :(得分:0)
您在声明中声明您的方法会抛出IllegalStateException
。但是,您永远不会为调用者处理异常。如果要抛出的异常是由MediaPlayer
方法引起的,则需要catch
块。在那里,只有throw
调用者处理的异常。
此外,Exception handling : throw, throws and Throwable是一个很好的阅读。