Ellenőrizze a FileChannel lock() metódus OverlappingFileLockException kivételét

Ez a szabály a java.nio.channels.FileChannel.lock() Módszer. Java SE 6 lock() Metódus most dob java.nio.channels.OverlappingFileLockException .

Ez a szabály a lock() A try/catch blokkkal nem rendelkező metódus OverlappingFileLockException Vagy ha a környező módszer nem dob OverlappingFileLockException .

1. példa:

class="Code" > nyilvános MyClass{
private void doX(){
FileChannel fc= getFileChannel();
fc.lock();
}
}

2. példa:

class="Code" > nyilvános MyClass kiterjeszti a FileChannel{t
private void doX(){
super.lock();
}
// további kódrészek
}

3. példa:

class="Code" > nyilvános MyClass kiterjeszti a FileChannel{t
private void doX() throws OverlappingFileLockException{
super.lock();
}
private void doY() {
try{
super.lock();
catch {OverlappingFileLockException e} {}
}
// további kódrészek
}

Például az 1. fc.lock() A hívás le lesz jelölve.

2. Példa: super.lock() A hívás le lesz jelölve.

A 3. Példában semmi nem lesz megjelölve, mert a doX() metódus már dob OverlappingFileLockException és a doY() metódus fogásai OverlappingFileLockException .

Java SE 6 hozzáadva a rendszertulajdonságot sun.nio.ch.disableSystemWideOverlappingFileLockCheck Vezérlőelem java.nio.channels.FileChannel.lock Fájl ellenőrzési viselkedés.

További információkért tekintse meg a 4-es pontot a Java SE 6 kompatibilitási útmutató című dokumentumban.