如何使程序在异常后继续运行?
我有这段代码:
this.runnable = new Runnable() {
public void run() {
if (!isLoading && !playerList.isEmpty()) {
this.isLoading = true;
ArrayList<Player> clonedList = (ArrayList<Player>)playerList.clone();
playerList.clear();
for (Player player : clonedList) {
main.getDataManager().loadPlayer(player);
}
this.isLoading = false;
}
}
}
方法“main.getDataManager()。loadPlayer(player);”可能会抛出异常。
异常后,每隔5秒执行此runnable的run()方法的无限循环停止。如果抛出异常,如何使它永远不会停止/退出?有可能吗?
答案 0 :(得分:1)
抓住并吞下/处理它:
for (Player player : clonedList) {
try {
main.getDataManager().loadPlayer(player);
} catch (Exception e) {
}
}
答案 1 :(得分:0)
这是您需要处理异常的地方。如果未处理异常,程序将在抛出异常的位置后停止。但是你可以把你的异常包含在try-catch块中,就像这样。
for (Player player : clonedList) {
try {
main.getDataManager().loadPlayer(player);
} catch (Exception e) {
// your recovery from exception can be done here..
}
} //在这一点之后程序仍然可以执行甚至抛出异常..
答案 2 :(得分:0)
抓住例外:
public void run() {
if (!isLoading && !playerList.isEmpty()) {
this.isLoading = true;
ArrayList<Player> clonedList = (ArrayList<Player>)playerList.clone();
playerList.clear();
for (Player player : clonedList) {
try {
main.getDataManager().loadPlayer(player);
} catch (Exception e) { }
}
this.isLoading = false;
}
}
您也可以将整个for
循环放在try
- catch
块中,这样如果一个播放器无法加载,它会停止尝试加载其他播放器,直到{{1}再次被召唤。
run