Я читаю Java от HeadFirst. Я начал читать главу об обработке исключений. В книге был код, который я выполнил на своем компьютере.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.
Что здесь происходит?
Вы должны продолжать читать или читать [этот учебник] (https://docs.oracle.com/javase/tutorial/essential/exceptions/try.html). Блок 'catch' выполняется только iff. добавляется «Исключение». Компилятор действительно жаловался, потому что вы вообще не заметили исключение (компилятор не может знать, возникает ли «Исключение» во время выполнения). – Turing85