[英]How can I retry a try-catch after I catch an IllegalStateException?
我知道之前有人问过这个问题,但我无法在我的代码中实现它。 如果我抓住了,我如何再次重试 try-catch 块?
if(mediaPlayer!=null){
try {
mediaPlayer.start();
songEnded = 0;
} catch(IllegalStateException e) {
// media player is not initialized
//TRY AGAIN
}
}
我认为最好的办法是将它包装在一个 while 循环中,并在 while 循环中添加一个条件来检查媒体播放器是否已启动。
例如:
void playMediaPlayer() {
MediaPlayer mediaPlayer = new MediaPlayer();
while (!mediaPlayer.initialized) {
try {
mediaPlayer.start();
mediaPlayer.initialized = true;
} catch (IllegalStateException ignored) {
// optionally wait some time before trying again
try {
Thread.sleep(100L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
static class MediaPlayer {
boolean initialized = false;
public void start() throws IllegalStateException{
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.