抛出异常正确的结构?

时间:2015-03-06 04:02:05

标签: android exception try-catch

只是想知道这是否是一个与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

1 个答案:

答案 0 :(得分:0)

您在声明中声明您的方法会抛出IllegalStateException。但是,您永远不会为调用者处理异常。如果要抛出的异常是由MediaPlayer方法引起的,则需要catch块。在那里,只有throw调用者处理的异常。

enter image description here

此外,Exception handling : throw, throws and Throwable是一个很好的阅读。