2012-04-03 3 views
3

Kann der vom Betriebssystem zurückgegebene Fehlercode an die JVM zurückgegeben werden, wenn eine FileNotFoundException ausgelöst wird?Kann der vom Betriebssystem zurückgegebene Fehlercode an die JVM zurückgegeben werden, wenn eine FileNotFoundException ausgelöst wird?

Das Problem, das ich habe, wenn versucht wird, einen Eingabedateistrom für eine Datei zu öffnen, wenn die Datei vom Betriebssystem gesperrt ist, verursacht eine FileNotFoundException ausgelöst werden, obwohl die Datei tatsächlich vorhanden ist.

Wenn ich versuche, die Datei mit einem in C geschriebenen Code zu öffnen, gibt das Betriebssystem ERROR_SHARING_VIOLATION wie in winerror.h definiert zurück. In JAVA wird jedoch eine FileNotFoundException mit der Fehlermeldung "Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird" ausgelöst.

Was ich tun möchte, ist einige Logik zu versuchen/fangen, um das Öffnen der Datei erneut zu versuchen, wenn bestimmte spezifische Fehler auftreten, aber ich kann nicht herausfinden, wie Sie in die FileNotFoundException bohren und die zugrunde liegende Ursache finden der Fehler. Die einzige andere Option, die ich habe, ist die Beschreibung der Fehlermeldung zu überprüfen, aber es scheint einfach nicht der richtige Weg zu sein.

Antwort

2

Leider nicht.

FileNotFoundException hat keine Unterklassen, die es verfeinern, und die Klasse selbst hat keine spezifischen Zugriffsmethoden. Dies ist ein häufiges Problem und vermutlich aufgrund der Tatsache, dass die Standard-API plattformunabhängig sein soll.

Die Behelfslösung in der Regel ist die Zeichenfolge von getMessage() oder fallen auf muttersprachliches Niveau und löst es in einer plattformspezifische Weise in zum Beispiel C.

zurück analysieren
Verwandte Themen