2012-07-29 24 views
0

允許獲得一個不尋常的錯誤: - '無效' 類型此處不允許'無效' 類型不在這裏

import javax.sound.midi.*; 

public class MiniMusicPlayer1 { 
    public static void main(String[] args) { 
      try { 
        Sequencer player = MidiSystem.getSequencer(); 
        Sequence seq = new Sequence(Sequence.PPQ, 4); 
        Track track = seq.createTrack(); 
        for (int i = 5; i < 61; i += 4) { 
          track.add(makeEvent(144, 1, i, 100, i)); 
          track.add(makeEvent(128, 1, i, 100, i)); 
        } 

          player.setSequence(seq); 
          player.setTempoInBPM(220); 
          player.start(); 



      } catch (Exception ex) { 
        System.out.println(ex.printStackTrace()); 
      } 
    } 

    public static MidiEvent makeEvent(int comd, int ch, int note, int vel, 
        int tick) { 
      MidiEvent event = null; 
      try 
      { 
        ShortMessage a = new ShortMessage(); 
        a.setMessage(comd, ch, note, vel); 
        event = new MidiEvent(a,tick); 

      } 
      catch(Exception e) 
      { 
        System.out.println(e.getMessage()); 
      } 
      return event; 
    } 

ANKIT @太空堡壘:/家庭/ mount_150/Java的$ javac的MiniMusicPlayer1.java MiniMusicPlayer1.java: 21:錯誤:'void'類型不允許在這裏 System.out.println(ex.printStackTrace()); ^

請幫忙。

回答

9

您打電話給printStackTrace,並將其無效結果「傳遞」給println

println需要打印內容:所有你需要的是ex.printStackTrace()

+0

它有點meh,println不能僅僅處理這個..:/ – 2012-07-30 00:03:21

+4

@Arnab:你在說什麼哈迪斯?如果沒有可行的信息傳遞給println,println如何處理? 1+給戴夫。 – 2012-07-30 00:14:59

+0

@HovercraftFullOfEels:我在說,它認爲println無法處理傳遞給它的空值。並不是說它會做任何有用的事情,除了可能避免編譯器錯誤信息。另外當然,編譯器錯誤信息可以通過說明什麼類型的輸入println可以處理以及它實際得到什麼 – 2012-07-30 00:18:37