Výjimka nulového ukazatele v Javě: Implementace a příklady



Tento článek vám poskytne podrobné a komplexní znalosti o tom, jak Null Pointer Exception funguje v Javě se spoustou příkladů.

Pro plynulý běh kódu jsou nutné výjimky, díky nimž programátoři vědí o chybě, kterou je třeba vyřešit. V tomto článku se zaměříme na Null Pointer Exception v Javě v následujícím pořadí:

Co je výjimka Null Pointer v Javě?





Výjimka nulového ukazatele v Javě je výjimka za běhu. Ve světě Javy je odkazu na objekt přiřazena speciální nulová hodnota. Výjimka ukazatele Null je zavedena, když se program pokusí použít odkaz na objekt, který má hodnotu null. Který může být:

jak zobrazit pole v php
  • K vyvolání určité metody z prázdného objektu.
  • Pro přístup nebo úpravu pole nulového objektu.
  • Zvažováním délky null, jako by to bylo pole.
  • Při přístupu nebo úpravě slotů prázdného objektu.
  • Házení null jako hodná hodnota.
  • Pokus o synchronizaci přes nulový objekt.

Proč potřebujeme nulovou hodnotu?



Null je jedinečná hodnota používaná v Javě. Null se používá k označení, že referenční hodnotě není přiřazena žádná hodnota. Primární aplikace null spočívá v implementaci datových struktur, jako jsou propojené seznamy a stromy. Některé další aplikace zahrnují vzory nulových objektů a vzory singletonů. Singletonový vzor určuje, že lze zahájit pouze jednu instanci třídy, a má za cíl poskytnout globální přístupový bod k objektu.

Nejlepší a jednoduchý způsob, jak vytvořit alespoň jednu instanci třídy, je deklarovat všechny konstruktory jako soukromé. Pak vytvoří veřejnou metodu, která vrátí jedinečnou instanci třídy.

// Chcete-li použít funkci randomUUID. import java.util.UUID import java.io. * třída Singleton {// Zde inicializujeme hodnoty single a ID na null. private static Singleton single = null private String ID = null private Singleton () {/ * Nastavit jako soukromé, aby se zabránilo vytváření nových instancí třídy Singleton. * / // Vytvořit náhodné ID ID = UUID.randomUUID (). ToString ()} public static Singleton getInstance () {if (single == null) single = new Singleton () return single} public String getID () {return this.ID}} // Kód ovladače veřejné třídy TestSingleton {public static void main (String [] args) {Singleton s = Singleton.getInstance () System.out.println (s.getID ())}} //

Výstup:



null-pointer

Výše uvedený příklad je statická instance třídy singleton. Instance je inicializována maximálně jednou uvnitř metody Instance Singleton get.

jak používat balíček v javě

Jak se vyhnout výjimce Null Pointer v Javě?

Abychom se vyhnuli výjimce Null Pointer v Javě, musíme se ujistit, že jsou všechny objekty správně inicializovány, než je použijete. Když je deklarována referenční proměnná, musíme ověřit, že objekt nemá hodnotu null a také Než požádáme o metody nebo pole z objektů. Následuje několik problémů s odpovídajícími řešeními k překonání tohoto problému.

// program k předvedení vyvolání metody // na null způsobí NullPointerException import java.io. * třída GFG {public static void main (String [] args) {// Inicializace řetězcové proměnné s nulovou hodnotou String ptr = null // Kontrola, zda je ptr.equals null nebo funguje dobře. zkuste {// Tento řádek kódu vyvolá NullPointerException // protože ptr je null if (ptr.equals ('gfg')) System.out.print ('Same') else System.out.print ('Not Same')} catch (NullPointerException e) {System.out.print ('NullPointerException Caught')}}}

Výstup:

Vedení kontroly argumentů metody

Vždy si pamatujte, že před provedením těla nové metody bychom měli zajistit její argumenty pro nulové hodnoty a pokračovat v provádění metody. Kdy a jen když jsou argumenty správně zkontrolovány. Jinak vyvolá „IllegalArgumentException“ a zavolá volací metodu, že s předanými argumenty něco není v pořádku.

// program pro kontrolu, zda jsou parametry null nebo ne před // jejich použitím. import java.io. * class GFG {public static void main (String [] args) {// String s set an empty string and calling getLength () String s = '' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException chycen')} // Řetězec je nastaven na hodnotu a volá getLength () s = 'GeeksforGeeks' try {System.out.println (getLength (s) )} catch (IllegalArgumentException e) {System.out.println ('IllegalArgumentException chycen')} // Nastavení s jako null a volání getLength () s = null vyzkoušet {System.out.println (getLength (s))} catch ( IllegalArgumentException e) {System.out.println ('IllegalArgumentException chycen')}} // Funkce pro vrácení délky řetězce s. Vyvolá // IllegalArgumentException, pokud s je null. public static int getLength (String s) {if (s == null) throw new IllegalArgumentException ('The argument cannot be null') return s.length ()}}

Výstup:

Použití ternárního operátora

K vyloučení NullPointerException se používá ternární operátor. Je zkontrolován logický výraz a pokud je výraz pravdivý, vrátí se hodnota1, jinak se vrátí hodnota2. Lze použít ternární operátor pro zpracování nulových ukazatelů: Pravý obrázek je odpovídající výstup.

zpracování výjimek pl / sql
// Program Java, který ukazuje, že můžeme použít // ternární operátor, abychom se vyhnuli NullPointerException. import java.io. * třída GFG {public static void main (String [] args) {// Inicializace řetězcové proměnné s nulovou hodnotou String str = null String message = (str == null)? '': str.substring (0,5) System.out.println (message) str = 'Edureka_Java_Blog' message = (str == null)? '': str.substring (0,5) System.out.println (zpráva)}}

Výstup:

Edurek

S tímto se dostáváme na konec výjimky Null Pointer Exception v Javě. Doufám, že máte představu o výjimce Null Pointer Exception.

Podívejte se na Edureka, důvěryhodná online vzdělávací společnost se sítí více než 250 000 spokojených studentů po celém světě. Školicí a certifikační kurz Edureka Java J2EE a SOA je určen pro studenty a profesionály, kteří chtějí být vývojářem Java. Kurz je navržen tak, aby vám poskytl náskok v programování v Javě a naučil vás základní i pokročilé koncepty Javy spolu s různými jávskými rámci, jako je Hibernate & Spring.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů v tomto blogu „Null Pointer Exception in Java“ a my se vám ozveme co nejdříve.