获取未报告的异常尝试调用函数以播放.WAV时出现异常

时间:2014-05-26 00:15:07

标签: java javasound

我正在尝试调用以下函数,该函数应该重现声音:

public static void emitirSonido() throws Exception {

URL url = new URL(
    "http://www.wavsource.com/snds_2014-05-25_4108314609264195/animals/chicken.wav");  //URL

Clip clip = AudioSystem.getClip();
// getAudioInputStream()

AudioInputStream ais = AudioSystem.
    getAudioInputStream( url );

clip.open(ais);
clip.loop(Clip.LOOP_CONTINUOUSLY);

SwingUtilities.invokeLater(new Runnable() {


    public void run() {

        JOptionPane.showMessageDialog(null, "ok!");
    }
});
}

就此而言我正在使用一个简单的函数调用:

emitirSonido();

但我一直在接受:

error: unreported exception Exception; must be caught or declared to be thrown
            emitirSonido();
                        ^

说实话,我不知道还有什么可以尝试,因为如果我删除它只会给我7个错误,最初代码来自javasound.info

任何帮助都会很棒。 感谢

1 个答案:

答案 0 :(得分:1)

emitirSonido被宣布为投掷Exception ...

emitirSonido() throws Exception

当您调用此方法时,您必须捕获它或重新抛出它,例如......

try {
    emitirSonido()
} catch (Exception exp) {
    exp.printStackTrace();
}

作为一个侧面点,抛出Exception并不是一个好主意,提供实际抛出的异常会更好,因为呼叫者可能会选择和选择他们处理的那些以及哪些他们重新投掷的人

仔细查看the Exceptions trail了解更多详情