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