Vhodí klíčové slovo Java

⚡ Chytré shrnutí

Vhodí klíčové slovo Java se používá v deklaraci metody k oznámení kontrolovaných výjimek, které může metoda vyvolat během provádění. Deleguje zpracování výjimek volající metodě namísto vynucení bloku try-catch uvnitř.

  • 📢 Definice hodů: Deklaruje výjimky, které může metoda vyvolat, aby je volající mohli zpracovat.
  • 🧱 Syntaxe: Umístí se za signaturu metody, např. method(args) vyvolá Výjimku1, Výjimku2.
  • 🔁 Dvě možnosti: Výjimku ošetřete pomocí try-catch nebo ji deklarujte pomocí throws.
  • 🇧🇷 hod vs. hody: Funkce throw vyvolá jeden objekt výjimky; throws vypíše jeden nebo více objektů v signatuře.
  • ⚠️ Pravidlo kompilátoru: Kontrolované výjimky musí být buď zachyceny, nebo deklarovány, jinak kompilace selže.

Vhodí klíčové slovo Java

Java Klíčové slovo hodí

Jedno Java hodí klíčové slovo se používá k deklaraci informace o výjimce, která se může objevit během provádění programu. Dává informaci o výjimce programátorovi. Je lepší poskytnout kód zpracování výjimek, aby bylo možné zachovat normální průběh provádění programu.

Java Syntaxe Throw Exception

Předpokládejme, že ve svém programu Java používáte metodu knihovny, která vyvolá výjimku


Java hodí klíčové slovo

Ve svém programu tuto výjimku ošetříte pomocí try & catch.

import java.io.*;
class file1{
  public static void main(String[] args) {
     try{
           FileWriter file = new FileWriter("c:\\Data1.txt");
           file.write("Guru99");
           file.close();
    }
    catch(IOException){}
  }
}

Pokud výjimku neošetříte v bloku try catch, kompilace selže. Ale téměř každá jiná metoda v knihovně Java nebo dokonce uživatelem definovaná metoda může vyvolat jednu nebo dvě výjimky. Ošetření všech výjimek pomocí bloků try a catch by mohlo být těžkopádné a omezilo by propustnost kodéra.

Java tedy poskytuje možnost, kdy kdykoli v definici metody používáte riskantní kód, deklarujete jej hodí výjimka bez implementace try catch.

Java Syntaxe Throw Exception

method (Arguments) throws Exception1,Exception2,Exception,… {}

Vhodí klíčové slovo Java Příklad

Zvažte stejný příklad jako výše s throws v deklaraci metody.

import java.io.*;
class file1{
    public static void main(String[] args) throws IOException{
      FileWriter file = new FileWriter("c:\\Data1.txt");
      file.write("Guru99");
      file.close();
    }
}

Poznámka: Pro úspěšné použití výše uvedených kódů nejprve vytvořte prázdný textový soubor s názvem Data1.txt na disku C. Stručně řečeno, existují dvě metody pro zpracování výjimek:

  1. Vložte kód způsobující výjimku do bloku try and catch.
  2. Deklarujte metodu, že vyvolá výjimku

Pokud některý z výše uvedených dvou není proveden, kompilátor dává chybu. Myšlenkou prosazování tohoto pravidla je, že vy jako programátor víte, že určitá část kódu může být riskantní a může způsobit výjimku.

Jaký je rozdíl mezi hodem a hodem?

hod hodí
Slouží k vytvoření nového objektu Exception a jeho vyvolání Používá se v definici metody, k prohlášení, že je volána riskantní metoda.
Pomocí klíčového slova throw můžete deklarovat pouze jednu výjimku najednou Pomocí klíčového slova throws můžete deklarovat více výjimek najednou.
Příklad: vyhodit novou IOException("nelze otevřít připojení"); Příklad: vyvolá IOException, ArrayIndexBoundException;

Nejčastější dotazy

Klíčové slovo throw vyvolá v těle metody jeden objekt výjimky, zatímco klíčové slovo throws se objevuje v signatuře metody a deklaruje jednu nebo více výjimek, které může metoda předat volajícímu.

Ano. Jedna klauzule throws může vypsat několik výjimek oddělených čárkami, například throws IOException, SQLException. Volající metoda pak musí každou z nich zpracovat nebo dále deklarovat.

Ne. Nekontrolované výjimky (podtřídy RuntimeException) není nutné deklarovat pomocí throws. Kompilátor vynucuje deklaraci nebo zpracování pouze kontrolovaných výjimek, jako je například IOException.

Umělá inteligence dokáže navrhnout vhodné bloky try-catch, doporučit, zda zachytit nebo deklarovat výjimku, generovat smysluplné chybové zprávy a detekovat pohlcené výjimky, helpping vývojáři píší bezpečnější a lépe udržovatelný kód pro ošetřování chyb.

Ano. Umělá inteligence dokáže analyzovat tělo metody, identifikovat rizikové operace, jako je přístup k souborům nebo síti, a doporučit kontrolované výjimky k deklaraci v klauzuli throws, čímž se snižuje počet vynechaných deklarací a chyb při kompilaci.

Shrňte tento příspěvek takto: