java - 为什么我的switch语句生成IOException

标签 java error-handling switch-statement ioexception

我有一个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/

相关文章:

swift - 我收到错误 'String' 无法使用 swift 匹配我的 Switch 语句中的值,为什么?

php - 意外的 PHP 切换行为

java - 启动相机 android 权限时崩溃

java - Hibernate:一次删除所有具有关联的实体

php - PHP中的细粒度错误报告

java - Pervasive 8 中的案例陈述

java - 找出Java中的特殊字符

java - 使用静音按钮停止播放剪辑?

php - PHP类和错误消息传递

C - 检查文件中的错误