我有一个switch语句:
public Player player(Colour colour, ScotlandYardView view, String mapFilename) {
switch (typeMap.get(colour)) {
case AI:
return new RandomPlayer(view, mapFilename);
case GUI:
return gui(view);
default:
return new RandomPlayer(view, mapFilename);
}
}
我收到未处理的IOException错误。为什么会这样,我该如何解决?
最佳答案
好吧,除了codegasmer的答案外,让我至少回答why-part的问题:这仅仅是因为您调用的任何方法都引发了IOException。这可能是typeMap.get()(在这种情况下我不会期望,但是从理论上讲是可能的),'gui'方法或RandomPlayer的构造函数。
codegasmer显示了一种方法,可以识别哪些方法负责,您会在堆栈跟踪中看到它-甚至可以揭示有问题的方法(称为异常)在哪些方法中抛出。
如果您可以简单地捕获异常并提供回退解决方案,则可以这样做(例如,通过在catch块中创建回退对象)。最好是找出异常的最初原因是什么,然后尽可能避免。使用调试器可以在这里大有帮助。由于我不知道所涉及类的任何详细信息,因此在这里无法提供任何进一步的帮助。
关于java - 为什么我的switch语句生成IOException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29941584/