File soundFile = new File(filename); AudioInputStream audioInputStream = null;
try {
//从提供的 File 获得音频输入流。该 File 必须指向有效的音频文件数据。 
audioInputStream = AudioSystem.getAudioInputStream(soundFile);
} catch (Exception e1) {
e1.printStackTrace();
return;
}
最后的这个return 是什么意思呢 

解决方案 »

  1.   

    return的意思是执行到当前位置程序终止,即你这是捕获到音频输入异常时终止。
      

  2.   

    在这儿"return;"就是说“本函数代码执行到这儿就终止(返回)啦!”,然后返回到这个函数的调用者函数继续运行
      

  3.   

    那如果注释掉这个return呢  会对代码有什么影响呢
      

  4.   


    没有return:catch到异常之后,执行完e1.printStackTrace()会跳出try catch代码继续往下执行操作直到return或者函数尾为止,这样做是危险的。如果你audioInputStream = AudioSystem.getAudioInputStream(soundFile)这句话出现了异常,那么有可能你的audioInputStream对象是没有东西的,如果你在try catch后面还继续对一个不能用的对象进行操作,是不正确的
      

  5.   

    跳出异常,不执行下面的,除了finally中的
      

  6.   

    public void run() { File soundFile = new File(filename); AudioInputStream audioInputStream = null;
    try {
    //从提供的 File 获得音频输入流。该 File 必须指向有效的音频文件数据。 
    audioInputStream = AudioSystem.getAudioInputStream(soundFile);
    } catch (Exception e1) {
    e1.printStackTrace();
    // return"就是说“本函数代码执行到这儿就终止(返回)啦!”,然后返回到这个函数的调用者函数继续运行
    return;
    } AudioFormat format = audioInputStream.getFormat();
    SourceDataLine auline = null;
    DataLine.Info info = new DataLine.Info(SourceDataLine.class, format); try {
    auline = (SourceDataLine) AudioSystem.getLine(info);
    auline.open(format);
    } catch (Exception e) {
    e.printStackTrace();
    return;
    } auline.start();
    int nBytesRead = 0;
    //这是缓冲
    byte[] abData = new byte[512]; try {
    while (nBytesRead != -1) {
    nBytesRead = audioInputStream.read(abData, 0, abData.length);
    if (nBytesRead >= 0)
    auline.write(abData, 0, nBytesRead);
    }
    } catch (IOException e) {
    e.printStackTrace();
    return;
    } finally {
    auline.drain();
    auline.close();
    } } 这是源代码  有两个return  像你这么说 遇到return 那不就不执行下面的吗 还望你能讲明白点 我刚学 不懂 呵呵