抛出异常正确的结构?

throws Exception correct structure?

只是想知道这是否是用于尝试和异常的正确结构:

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

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

此外,Exception handling : throw, throws and Throwable 是一本好书。