Co jsou zaškrtnuté výjimky v Javě?

Doug Lowe

Zkontrolované výjimky jsou výjimky, které designéři Javy cítí, že vaše programy tak či onak musí naprosto zajistit. Kdykoli napíšete příkaz, který by mohl vyvolat zaškrtnutou výjimku, váš program musí udělat jednu ze dvou věcí:



pomáhá tamiflu s koronavirem
  • Chyťte výjimku umístěním příkazu do aSnaž seprohlášení, které máchytitblok pro výjimku.



  • Uveďte ahodíklauzule o metodě, která obsahuje příkaz k označení, že vaše metoda nechce výjimku zpracovat, takže výjimku předává nahoru.

Dávejte pozor, abyste nezaměňovaliházetshodí. Thehodíklíčové slovo se používá v metodě k označení, že metoda nezachytí konkrétní kontrolovanou výjimku, ale spíše ji hodí do volající rutiny. Theházetstatement je na druhé straně spustitelný příkaz, který ve skutečnosti vyvolá výjimku.



Toto je chytač nebo hod pravidlo. Stručně řečeno, každá metoda, která obsahuje příkaz, který by mohl vyvolat kontrolovanou výjimku, musí potvrdit, že ví, že výjimka může být vyvolána. Metoda to dělá tak, že ji zpracovává přímo nebo předáním výjimky svému volajícímu.

Například metoda, která používáFileInputStreamtřída pro čtení dat ze souboru musí zpracovávatFileNotFoundExceptionkdyž vytvoříFileInputStreamobjekt. K této výjimce dochází, pokud zadaný soubor neexistuje.FileNotFoundExceptionje zaškrtnutá výjimka, takže musí být chycen nebo hoden.

můžete si vzít tylenol s adderall

Jeden způsob, jak se vypořádat sFileNotFoundExceptionje chytit to pomocí obyčejnéhoSnaž seprohlášení:



public static void openFile(String name) { try { FileInputStream f = new FileInputStream(name); } catch (FileNotFoundException e) { System.out.println(File not found.); } }

V tomto příkladu zprávaSoubor nenalezense zobrazí, pokudC: test.txtsoubor neexistuje.

Pokud se nechcete vypořádat sFileNotFoundExceptionv metodě, která vytváříFileInputStreamobjekt, tato metoda musí vyvolat výjimku, například takto:

public static void openFile(String name) throws FileNotFoundException { FileInputStream f = new FileInputStream(name); }

Přidání ahodídoložka kotevřít soubormetoda znamená, že kdyžFileNotFoundExceptiondojde, jednoduše se předá metodě, která volalaotevřít soubormetoda. To znamená, že volající metoda musí zachytit nebo hodit výjimku.