Middle
Jakie metody obsługi sprawdzanych wyjątków istnieją?
sobes.tech AI
Odpowiedź od AI
- Użyj bloku
try-catch: pozwala on przechwycić wyjątek i go obsłużyć, zapobiegając nagłemu zakończeniu programu. - Zadeklaruj, że metoda rzuca wyjątek, używając słowa kluczowego
throwsw sygnaturze metody: przenosi to odpowiedzialność za obsługę na kod wywołujący. - Opakuj sprawdzany wyjątek w nie sprawdzany: pozwala na przekazanie wyjątku bez jawnego obsługiwania, ale może ukryć prawdziwy problem.
Przykład użycia try-catch:
// Przykład użycia try-catch do obsługi sprawdzanego wyjątku
try {
// Kod, który może rzucić sprawdzany wyjątek (np. IOException)
FileReader file = new FileReader("my_file.txt");
// Praca z plikiem...
} catch (IOException e) {
// Obsługa IOException
e.printStackTrace(); // Wyświetlenie stosu wywołań do debugowania
System.err.println("Błąd podczas pracy z plikiem: " + e.getMessage());
}
Przykład użycia throws:
// Przykład użycia throws w sygnaturze metody
public void readFile(String fileName) throws IOException {
FileReader file = new FileReader(fileName);
// Praca z plikiem...
}
// Kod wywołujący musi obsłużyć IOException lub zadeklarować je w swojej sygnaturze
public void processFile(String filePath) {
try {
readFile(filePath);
} catch (IOException e) {
System.err.println("Błąd podczas odczytu pliku: " + e.getMessage());
}
}
Przykład opakowania w nie sprawdzany wyjątek:
// Przykład opakowania sprawdzanego wyjątku w nie sprawdzany
public void unsafeOperation() {
try {
// Kod, który może rzucić sprawdzany wyjątek
throw new IOException("Przykład IOException");
} catch (IOException e) {
// Przekształcenie sprawdzanego wyjątku w nie sprawdzany
throw new RuntimeException("Wykryto błąd w operacji", e);
}
}