Hvordan løse Java.lang.reflektere.InvocationTargetException -feil

Hvordan løse Java.lang.reflektere.InvocationTargetException -feil

Mens du analyserer kodebegrensningene for å effektivisere koden, kan det være tilfeller der utvikleren trenger for å finne det faktiske problemet. For eksempel å konfigurere den innpakket begrensningen for å eliminere den faktiske flaskehalsen umiddelbart. I slike situasjoner, løse "Java.lang.reflektere.InvocationTargetException”Feil er til stor hjelp for å analysere og sortere ut kodefunksjonalitetene effektivt.

Denne bloggen vil utdype å løse “Java.lang.reflektere.InvocationTargetException”Feil.

Hva er “Java.lang.reflektere.InvocationTargetException ”-feil?

Når en klassemetode påkalt av “Metode.påkalle ()”Logger et unntak, det er pakket inn av“Java.lang.reflektere.InvocationTargetException”Klasse, og skjuler dermed den faktiske begrensningen.

Forekomst av “Java.lang.reflektere.InvocationTargetException ”-feil

La oss oversikt følgende eksempel for å analysere forekomsten av "Java.lang.reflektere.InvocationTargetException”Begrensning ved hjelp av“getMethods ()”Og“påkalle ()”Metoder. Den tidligere metoden påkaller alle klassemetodene, og sistnevnte metode får tilgang til den underliggende metoden representert med metodeobjektet.

Syntaks

Offentlig objekt Invoke (Objekt OB, objekt… Arg)

I denne syntaksen:

  • Objekt ob”Peker på objektet den underliggende metoden er tilgjengelig fra.
  • Objekt… Arg”Henviser til argumentene som brukes for metodesamtalen.

For det første, sørg for å inkludere følgende bibliotek for å gi detaljene angående en metode på en bestemt kategori eller grensesnitt og gi tilgang for det samme:

Importer Java.lang.reflektere.Metode;

Gå nå videre til kodelinjene under leverte:

klasse InvocationException
public void ParseInteger ()
int x = heltall.parseint (null);
System.ute.println (x);

offentlig klasse Langexception
public static void main (String args [])
InvocationException Ti = new InvocationException ();
Metode [] M = InvocationException.klasse.getMethods ();
prøv
m [0].påkalle (ti);

fangst (unntak e)
System.ute.Println ("Innpaknings unntaket er:" + e);

I henhold til denne kodeblokken, bruk følgende trinn:

  • For det første, definere en klasse som heter “InvocationException”.
  • I sin definisjon, definere funksjonen “ParseInteger ()”Og analyser“null”Streng inn i et heltall, som definisjon via“parseint ()”Metode.
  • I “hoved-”Metode, lag klasseobjektet ved hjelp av“ny”Nøkkelord og“InvocationException ()Henholdsvis konstruktør.
  • I neste trinn, bruk "getMethods ()”Metode for å hente alle klassemetodene.
  • Inkluderer nå “prøve”Blokker og påkalle førsteklassemetoden ved å referere til indeksen, i.e., “0”Og klasseobjektet som“påkalle ()”Metodens parameter, henholdsvis.
  • Til slutt, takle unntaket som står overfor "prøve”Blokk i“å fange”Blokk.

Produksjon

I denne utgangen kan det analyseres tydelig at det faktiske unntaket, i.e., “NumberFormatexception”Er innpakket av“InvocationTargetException”.

Løser “Java.lang.reflektere.InvocationTargetException ”-feil

For å takle den diskuterte begrensningen, bruk "getCause ()”Metode. Denne metoden returnerer årsaken/årsaken til unntaket eller gir “null”Hvis årsaken til unntaket er ukjent.

For å gjøre det, bare legg til den diskuterte metoden i "å fange”Blokker for å logge det faktiske unntaket også, som følger:

System.ute.println ("det faktiske unntaket er:" + e.getCause ());

I dette utfallet er det tydelig at det innpakkede unntaket før er logget på riktig måte via den vedlagte metoden.

Konklusjon

For å løse “Java.lang.reflektere.InvocationTargetException”Feil, bruk“getCause ()”Metode for å logge det faktiske unntaket på konsollen. Det hjelper med å analysere den faktiske årsaken til begrensningen som fører til løsningen. Denne bloggen handlet om å løse “Java.lang.reflektere.InvocationTargetException”Feil.