LookAndFeel Exceptions bei UIManager.setLookAndFeel

E

einekurzefrage

Gast
Hallo zusammen!

Ich habe eine Frage zur Methode

Java:
UIManager.setLookAndFeel(String)

Diese Methode wirft ja theoretisch allerhand Exceptions. Mir ist nun nicht ganz klar, in welchen Fällen diese Exceptions jeweils auftreten.

Ich benutze ein 3rd Party Look & Feel, welches in mein Projekt eingebunden ist. Die isSupported()-Methode ist von diesem LAF einfach mit "return true" implementiert, d.h. die UnsupportedLookAndFeelException kann wohl schon mal sicher nicht auftreten.

Aber was ist mit den anderen? Wenn das Laden des Look and Feel bei mir beim Testen funktioniert, kann ich dann daraus schließen dass es auch auf allen Systemen funktioniert? Oder kann es sein dass dieser ClassLoader zum Beispiel manchmal die Datei einfach nicht laden kann, oder es irgendein Problem mit dem SecurityManager gibt (der ist da scheinbar auch im Spiel, ich hab mir den Source mal angesehen von der Methode), z.B. Firewall oder sowas?

Ich würde das gerne wissen weil ich gerade nicht weiß wie ich reagieren soll (was ich in das catch schreiben soll), und ob ich überhaupt reagieren muss. Denn wenn die Methode nur rein syntaktisch Exceptions wirft, aber in meinem konkreten Fall zur Laufzeit sicher keine aufrteten kann, dann muss ich mir nicht die Arbeit machen da irgendwie zu reagierne (z.B. eine fehlermeldung anzeigen).

Ich würde mich über Antworten sehr freuen, thx :)
 

jgh

Top Contributor
also wenn -auch nur rein theoretisch- Exceptions geschmissen werden können, dann solltest du diese auch behandeln (imho)...und ein Logger, oder eine JOptionPane mit dem Stacktrace ist ja nicht wirklich viel "Arbeit"...zumal du das L&F ja nur einmal am Anfang setzen solltest.
 
E

einekurzefrage

Gast
also wenn -auch nur rein theoretisch- Exceptions geschmissen werden können
Ja, aber das "rein theoretisch" interessiert mich ja auch nur für mein konkretes Programm. Ich benutze das nicht innerhalb eines Frameworks, sondern in einer konkreten Anwendung. Sun schmeißt doch eine Exception weil sie nicht wissen wie das benutzt wird, und es sein könnte dass die Klasse mit dem gegebenen Namen nicht gefunden wird etc. Aber wenn ich jetzt einen gültigen Namen übergebe, und das L&F eingebunden ist, und ich starte das Ding und es gibt keinen Fehler - heißt das nicht dass es halt nun mal alles richtig ist? Wenn nämlich in diesem Fall einfach keine Exception auftreten kann, halte es für unnötig, da irgendwie zu reagieren. Das ist doch nur toter Code der meinen Source aufbläht. Folgendes habe ich auch schon oft gesehen:

Java:
try{
   Thread.sleep(x);
}
catch(InterruptedException e){}

Wenn man eine einfache Anwendung hat und man weiß dass nirgendwo ein interrupt() aufgerufen wird, warum dann da irgendwas reinschreiben? Der catch-Block an sich ist ja schon lästig genug..

Ich sehe das im Moment so dass er die Datei findet und das laden kann. Ich meine es ist ja auch nicht so dass der ClassLoader zur Laufzeit eventuell irgendwelche Klassen aus meinem Projekt nicht laden kann, oder?

Aber ich bin mir nicht sicher..
 
E

einekurzefrage

Gast
Achso entschuldige, ich kann nicht editieren, aber ich wollte noch sagen:

und ein Logger, oder eine JOptionPane mit dem Stacktrace ist ja nicht wirklich viel "Arbeit"
Wenn dann würde ich den Benutzer natürlich schon darauf hinweisen wollen, also mit einem Dialog. Aber die JOptionPane Dialoge vermeide ich, da sie ohne owner starten und im Desktop untergehen können (Siehe Fenster ausblenden Feature von Windows 7), ich finde das doof. Ich würde mir wenn dann ein Frame dafür erzeugen usw, aber das ist dann doch etwas mehr Arbeit als nur ein Einzeler. Und warum sollte ich jetzt Klassen schreiben und da eine große fehlermeldung anzeigen, wenn es einfach nicht passieren kann?
 

Mujahiddin

Top Contributor
Throws:
ClassNotFoundException - if the LookAndFeel class could not be found
InstantiationException - if a new instance of the class couldn't be created
IllegalAccessException - if the class or initializer isn't accessible
UnsupportedLookAndFeelException - if lnf.isSupportedLookAndFeel() is false
ClassCastException - if className does not identify a class that extends LookAndFeel

ClassNotFoundException - plattformunabhängig
InstantiationException - plattformunabhängig
IllegalAccessException - plattformunabhängig
UnsupportedLookAndFeelException - weißt du ja selbst
ClassCastException - plattformunabhängig.

Wann welche Exception geschmissen wird, steht jeweils daneben...
Bei IllegalAccessException ist es so, dass zu einigen Libraries der Access verhindert wird. Sollte aber in deinem Fall nicht passieren.

Falls dein eigenes LookAndFeel in einer eigenen Klasse ist, dann kannst du einfach eine Instanz dieser Klasse erzeugen... Dann musst du nur UnsupportedLookAndFeelException behandeln, woran liegt hier das Problem?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Jose05 Umgang mit Exceptions in einen Programm Allgemeine Java-Themen 2
M Exceptions - wann / wie verwenden? Allgemeine Java-Themen 4
W Exceptions behandeln Allgemeine Java-Themen 16
Kirby.exe Exceptions erklärt Allgemeine Java-Themen 5
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
E Java Editor Problem mit 2er Exceptions Allgemeine Java-Themen 12
B Maven Keycloak library wirft exceptions nach maven package Allgemeine Java-Themen 1
J Exceptions Allgemeine Java-Themen 1
Z Java Exceptions - Auf leeres Feld prüfen Allgemeine Java-Themen 10
E Exceptions abfangen und dann Programm stoppen - aber wie? Allgemeine Java-Themen 2
L Nullpointer Exceptions werden nicht angezeigt Allgemeine Java-Themen 5
V Exceptions Allgemeine Java-Themen 2
G Exceptions mit jre 7u40 Allgemeine Java-Themen 2
S Best Practice verschiedene Exceptions fangen und neue Exception erzeugen Allgemeine Java-Themen 11
W JavaDoc Runtime-Exceptions: Wie sinnvoll anzeigen? Allgemeine Java-Themen 14
C Threads und Exceptions Allgemeine Java-Themen 7
B Webstart Exceptions Allgemeine Java-Themen 7
R Threads Exceptions von Threads abfangen im ThreadPool Allgemeine Java-Themen 5
S Runtime Exceptions in eine Datei schreiben Allgemeine Java-Themen 7
G Internationalisierung von Exceptions Allgemeine Java-Themen 5
J JUnit - werfen von Exceptions testen Allgemeine Java-Themen 17
F Alle Exceptions abfangen Allgemeine Java-Themen 4
B Alle Exceptions auf einmal abfangen Allgemeine Java-Themen 4
G log4j - Behandlung nicht explizit abgefangener Exceptions Allgemeine Java-Themen 5
B Logging von Exceptions Allgemeine Java-Themen 7
G Designfrage: Exceptions in Konstruktoren Allgemeine Java-Themen 7
I Exceptions - weder catch- noch finally-Klausel funktioniert Allgemeine Java-Themen 12
M Verwendung von unchecked exceptions & bereits vorhandenen exceptions was priorisieren Allgemeine Java-Themen 3
hdi Verhalten bei nicht behandelten Exceptions Allgemeine Java-Themen 2
H Exceptions und IO Allgemeine Java-Themen 17
B Exceptions? Allgemeine Java-Themen 4
D Throws Exceptions Allgemeine Java-Themen 14
M Verständnisfrage Exceptions Allgemeine Java-Themen 2
V Exceptions als Fehlerbehandlung "missbrauchen"? Allgemeine Java-Themen 10
DEvent Wie behandelt man Exceptions in Iterator? Allgemeine Java-Themen 2
J Verständnisfrage zu exceptions Allgemeine Java-Themen 3
A Junit Exceptions testen Allgemeine Java-Themen 3
R Loading-Thread und Exceptions abfangen. Allgemeine Java-Themen 4
P Exceptions dokumentieren. Allgemeine Java-Themen 6
G Exceptions weiterwerfen Allgemeine Java-Themen 2
T Generics und Exceptions Allgemeine Java-Themen 6
P Exceptions throw Allgemeine Java-Themen 6
F Wann und wie Exceptions einsetzen? Allgemeine Java-Themen 13
J Method.invoke -> Exceptions der Funktion abfangen Allgemeine Java-Themen 5
T Frage zu Exceptions Allgemeine Java-Themen 3
G Java-Exceptions werden nicht ganz angezeigt. Wo ändern? Allgemeine Java-Themen 3
J Probleme mit Exceptions Allgemeine Java-Themen 11
R Exceptions mit aktuellen Programminformationen ausgeben? Allgemeine Java-Themen 2
märliprinz com.sap.dbtech.jdbc.exceptions.JDBCDriverException Allgemeine Java-Themen 2
G Alle Exceptions loggen Allgemeine Java-Themen 4
G Frage zu Exceptions Allgemeine Java-Themen 6
M err oder alle Exceptions eines Programms abfangen Allgemeine Java-Themen 4
G Exceptions ohne Zeilennummer (Unknown Source) Allgemeine Java-Themen 8
T Exceptions im statischem Klassencode Allgemeine Java-Themen 5
J Swing UIManager Werte Allgemeine Java-Themen 6

Ähnliche Java Themen

Neue Themen


Oben