簡體   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