FileNotFoundException abfangen - Keine Reaktion?!

Boolace

Grünschnabel
Hi!

Wir haben ein Plugin geschrieben, das einen Browser anzeigt. Ich habe nun die Aufgabe alle Exceptions abzufangen. Soweit so gut. Die Buttons des Browsers enthalten Bilder. Wenn der Pfad der Bilder nicht stimmt und dann das Plugin-View in Eclipse öffne, bekomme ich folgende Fehlermeldung:

Unable to create view: i/o error (java.io.FileNotFoundException: /users/.../documents/workspace/.../next.gif (No such file or directory))

Diese Fehlermeldung möchte ich nun gern abfangen und "Fehler" in der Konsole ausgeben (wird später durch ein Dialog ersetzt). Habe das folgendermassen gemacht:

Code:
try {
	url = dm.getCurrentUrl();
	nextUrl = dm.getNextUrl();
	prevUrl = dm.getPreviousUrl();
	nextPath = pfad+".../.../next.gif";
	
	Button next = new Button(shell, SWT.PUSH);
	Image nextIm = new Image(shell.getDisplay(), nextImPath);
	next.setImage(nextIm);
	next.setToolTipText("Nächste");
} catch (FileNotFoundException e) {
	System.out.println("Fehler");     // oder System.err.println("Fehler"); ändert aber au nix
}

Ich bekomme aber einfach keine Ausgabe in der Konsole... Warum nicht habs auch statt der FileNotFoundException mit ner IOException oder ner simplen Exception probiert. Nützt aber alles nix, weiss jemand wie ich das implementieren kann?!

Gruß Boolace
 
Zuletzt bearbeitet:
Hallo Boolace,

bist du dir sicher das keine Exception geworfen wird!

Java:
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;

public class HelloWorld {

	public HelloWorld() {
		Display display = new Display();
		Shell shell = new Shell(display);
		shell.setText("Hello World");

		try {
			Button next = new Button(shell, SWT.PUSH);
			Image nextIm = new Image(shell.getDisplay(), "");
			next.setImage(nextIm);
			next.setToolTipText("Nächste");
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}
		
		try {
			Button next = new Button(shell, SWT.PUSH);
			Image nextIm = new Image(shell.getDisplay(), "");
			next.setImage(nextIm);
			next.setToolTipText("Nächste");
		} catch (Exception e) {
			e.printStackTrace();
		}

		shell.pack();
		shell.open();
		while (!shell.isDisposed()) {
			if (!display.readAndDispatch())
				display.sleep();
		}
		display.dispose();
	}

	public static void main(String[] args) {
		new HelloWorld();
	}
}

Erste Fehlermeldung:
Code:
i/o error (java.io.FileNotFoundException:  (No such file or directory))

Zweite Fehlermeldung
Code:
org.eclipse.swt.SWTException: i/o error (java.io.FileNotFoundException:  (No such file or directory))
	at org.eclipse.swt.SWT.error(SWT.java:3374)
	at org.eclipse.swt.SWT.error(SWT.java:3297)
	at org.eclipse.swt.graphics.ImageLoader.load(ImageLoader.java:156)
	at org.eclipse.swt.graphics.ImageDataLoader.load(ImageDataLoader.java:22)
	at org.eclipse.swt.graphics.ImageData.<init>(ImageData.java:373)
	at org.eclipse.swt.graphics.Image.<init>(Image.java:802)
	at HelloWorld.<init>(HelloWorld.java:25)
	at HelloWorld.main(HelloWorld.java:42)
Caused by: java.io.FileNotFoundException:  (No such file or directory)
	at java.io.FileInputStream.open(Native Method)
	at java.io.FileInputStream.<init>(FileInputStream.java:106)
	at java.io.FileInputStream.<init>(FileInputStream.java:66)
	at org.eclipse.swt.internal.Compatibility.newFileInputStream(Compatibility.java:155)
	at org.eclipse.swt.graphics.ImageLoader.load(ImageLoader.java:153)
	... 5 more

Vg Erdal
 
Hi flashray,

vielen Dank. Ich weiss echt nicht wo mein Fehler lag. Jedenfalls funktioniert es jetzt.

Danke nochmal!

Gruß Boolace
 
Zurück