繁体   English   中英

捕获异常时,Java try / catch块不输出文本

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM