[英]Java try/catch block not outputting text when exception is caught
我一直在阅读《 Head First Java 2E》一书,该书涵盖了Java 5,我遇到了一个我不理解的异常处理问题。 在特殊的处理一章中,本书提供了以下示例,作为使用try / catch块捕获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块,程序将无法编译并显示MidiUnavailableException。 我希望上面的代码能得到输出:
Bummer...
相反,我得到
Sequencer initialized...
这仅仅是Java 5和Java 8之间的区别还是我做错了什么?
我会尽量简短。
如果存在,try / catch块将处理异常。
但是在某些情况下,您必须放置一个try / catch块,以便使用可以抛出异常的类。
因此,在您的情况下,如果将其取出,则代码将无法编译,因为它要求使用try / catch块,这并不意味着总会有异常。
希望这可以帮助。
Sequencer类可能会引发异常。 这就是为什么您必须添加try catch块的原因。 但是它运行良好,因此不会引发任何异常。
尝试删除您的设备,然后运行它。 然后可能会引发异常。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.