# warum keine fehlermeldungen auf der console



## noisebreath (14. Jun 2009)

was ich ja echt doof finde ist dass er mir keine fehler auf der console wirft wenn mein plugin eins wirft. kann mir jemand erklären warum das so ist und gibt es doch eine möglichkeit, dass ich einstellen könnte, dass er sie mir anzeigt? Oder muss ich das schritt für schritt mit dem debugger durchgehen?

lg

noise


----------



## maki (14. Jun 2009)

> was ich ja echt doof finde ist dass er mir keine fehler auf der console wirft


Wer ist *er*???


----------



## noisebreath (14. Jun 2009)

eclipse ^^


----------



## noisebreath (14. Jun 2009)

vermutung: exceptions werden anders abgefangen als bei normalen java projects?!


----------



## maki (14. Jun 2009)

Vermutung: Solange du nicht in der Lage bist dein Problem zu so beschreiben, dass auch andere dein Problem verstehen, wirst du hier keine Lösung bekommen.


----------



## HoaX (14. Jun 2009)

Eclipse hat mit der Ausgabe nix zu tun, wenn im Code die Exception nirgends auf Konsole ausgegeben wird, dann ist das halt so. Es liegt an dir das zu ändern ...


----------



## noisebreath (15. Jun 2009)

oki wer auch immer dafür verantwortlich ist.. in einem normalen Java Project wirft er mir z.b. eine NullpointerException wenn mein plugin eine werfen sollte gibt er mir nichts aus. da muss es doch einen unterschied/grund für geben..


----------



## Vayu (15. Jun 2009)

Eclipse handled nunmal nicht gefangene Exception mit seinem eigenen ErrorHandler. Diese werden ins Eclipse ErrorLog weggeloggt und eben nicht auf Konsole.
Wenn du willst dass solche Exceptions auf Konsole ausgegeben werden, musst du Sie selber fangen und ausgeben.
Ansonsten schau ins ErrorLog, dort kannst du dir auch den StackTrace dazu anschauen, dafür ist es da.


----------



## noisebreath (15. Jun 2009)

ah oki danke


----------



## dzim (16. Jun 2009)

Da hat damals google sehr geholfen!
Du die Eclipse-eigene Konsole auch in deinen Anwendungen verwenden und eigene Unterkonsolen (werden über den Namen der Konsole referenziert) erstellen.

Ich hab da irgendwas gefunden, das ein bisschen ausgebaut, aber im Prinzip ist es folgender Ablauf:


```
// erst mal Konsolen-Plugin holen
		// versuchen eine bestehende Konsole zu finden, oder neu anzulegen
		// systemConsoleName ist die Variable
		ConsolePlugin plugin = ConsolePlugin.getDefault();

		IConsoleManager conMan = plugin.getConsoleManager();

		IConsole[] existing = conMan.getConsoles();
		for (int i = 0; i < existing.length; i++)
			if (systemConsoleName.equals(existing[i].getName()))
				return (MessageConsole) existing[i];

		// no console found, so create a new one
		MessageConsole systemConsole = new MessageConsole(systemConsoleName,
				null);
		conMan.addConsoles(new IConsole[] { systemConsole });

		// dann erstellst du die MessageStreams, die du an PrintStreams anbindest
		defaultMessageOutputStream = systemConsole.newMessageStream();
		defaultMessagePrintStream = new PrintStream(defaultMessageOutputStream);

		warningMessageOutputStream = systemConsole.newMessageStream();
		warningMessageOutputStream.setColor(new Color(Display.getCurrent(), 0,
				0, 255));
		warningMessagePrintStream = new PrintStream(warningMessageOutputStream);

		errorMessageOutputStream = systemConsole.newMessageStream();
		errorMessageOutputStream.setColor(new Color(Display.getCurrent(), 255,
				0, 0));
		errorMessagePrintStream = new PrintStream(errorMessageOutputStream);

		//um dann schließlich die printStreams an sysout und syserr zu hängen
		System.setOut(defaultMessagePrintStream);
		System.setErr(errorMessagePrintStream);

		//lässt du dir dann noch die Konsole anzeigen
		// z.B. mit
		try {
			IWorkbenchPage page = PlatformUI.getWorkbench()
					.getActiveWorkbenchWindow().getActivePage();
			String id = IConsoleConstants.ID_CONSOLE_VIEW;
			IConsoleView view = (IConsoleView) page.showView(id);
			view.display(systemConsole);
		} catch (PartInitException e) {
			System.err.println(e.getMessage());
			// e.printStackTrace();
		}
		//dann werden alle System.out.print* und auch err auf dieser Konsole angezeigt
```

Savvy?

Nächstes mal lustig googlen und dann findest du das schon ;-)


----------



## Gast2 (16. Jun 2009)

Es gibt ein Paramter damit deine Fehlermeldungen auf der Konsole kommen. Ich glaub in der Argumenten -consoleLog mitgeben


----------



## vogella (19. Jun 2009)

Genau, -consoleLog sorgt dafür das die Exceptions auch ausgegeben werden. Siehe auch: Eclipse RCP - Run Configuration


----------



## dzim (19. Jun 2009)

wieder was dazu gelernt...


----------

