에서 HeadFirst으로 Java를 읽습니다. 예외 처리에 대한 장을 읽기 시작했습니다. 책에 컴퓨터에서 실행 한 코드가 있습니다.try-catch가 제대로 작동하지 않습니다.
import javax.sound.midi.*;
class PlayMusic
{
public void play()
{
try{
Sequencer sq = MidiSystem.getSequencer();
System.out.println("We got a sequencer");
}
catch(MidiUnavailableException ex)
{
System.out.println("Bummer!");
ex.printStackTrace();
}
}
public static void main(String[] args)
{
PlayMusic pm = new PlayMusic();
pm.play();
}
}
try-catch 블록을 제거하면 컴파일러에서 MidiUnavailableException 오류가 발생합니다. 예외를 잡으려고 try-catch를 사용했지만 System.out.println("Bummer");
이 실행되지 않습니다. 대신 try 블록이 실행됩니다.
여기 무슨 일입니까? 당신이 컴파일러 오류가 발생하는 경우
[this tutorial] (https://docs.oracle.com/javase/tutorial/essential/exceptions/try.html)을 계속 읽거나 읽어야합니다. 'catch' 블록은 iff 만 실행합니다. 피팅 '예외'가 발생합니다. 컴파일러는 예외를 전혀 잡지 않았기 때문에 불평을했습니다 (컴파일러는 실행시에 'Exception'이 발생하는지 알 수 없습니다). – Turing85