我一直在阅读《Head First Java 2E》一书,其中介绍了 Java 5,但我遇到了一个我不理解的异常处理问题。在异常处理章节中,本书给出了以下示例作为使用 try/catch block 捕获 MidiUnavailableException 的正确方法。
import javax.sound.midi.*;
public class MusicTest {
public void play() {
try {
Sequencer sequencer = MidiSystem.getSequencer();
System.out.println("Sequencer initialized...");
} catch (MidiUnavailableException ex) {
System.out.println("Bummer...");
}
}
public static void main(String[] args) {
MusicTest mt = new MusicTest();
mt.play();
}
}
如果没有 try/catch block ,程序将无法编译并出现 MidiUnavailableException。我希望通过上面的代码,我会得到输出:
Bummer...
相反,我得到
Sequencer initialized...
这只是 Java 5 和 Java 8 之间的区别还是我做错了什么?
最佳答案
我会尽量保持简短。
如果有异常,Try/catch block 就会处理异常。
但在某些情况下,您必须放置一个 try/catch block 才能使用可能引发异常的类。
因此,在您的情况下,如果将其取出,您的代码将无法编译,因为它要求 try/catch block ,这并不意味着总会有异常。
希望这有帮助。
关于Java try/catch block 在捕获异常时不输出文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36518397/