Rekommenderas, 2024

Redaktionen

Skillnad mellan fel och undantag i Java

"Throwable" fungerar som grunden för Java: s fel- och undantagshierarki. "Fel" är ett kritiskt tillstånd som inte kan hanteras av programmets kod. "Undantag" är den exceptionella situationen som kan hanteras av programmets kod. Den signifikanta skillnaden mellan fel och undantag är att ett fel beror på brist på systemresurser och ett undantag orsakas på grund av din kod. Låt oss studera andra skillnader mellan fel och undantag tillsammans med ett jämförelsediagram.

Jämförelsediagram

Grunder för jämförelseFelUndantag
GrundläggandeEtt fel uppstod på grund av brist på systemresurser.Ett undantag orsakas på grund av koden.
ÅterhämtningEtt fel är oåterkalleligt.Ett undantag kan återvinnas.
NyckelordDet finns inga sätt att hantera ett fel med programkoden.Undantag hanteras med tre nyckelord "försök", "fånga" och "kasta".
konsekvenser
När felet upptäcks kommer programmet att avslutas onormalt.Som ett undantag upptäcks kastas det och fångas av "kasta" och "fånga" nyckelord motsvarande.
typerFel är klassificerade som okontrollerad typ.Undantag klassificeras som kontrollerad eller okontrollerad typ.
PaketI Java definieras fel "java.lang.Error" -paketet.I Java definieras en undantag i "java.lang.Exception".
ExempelOutOfMemory, StackOverFlow.Kontrollerade undantag: NoSuchMethod, ClassNotFound.
Avmarkerade undantag: NullPointer, IndexOutOfBounds.

Definition av fel

" Fel " är en underklass av den inbyggda klassen "Throwable". Fel är de kritiska förhållandena som uppstår på grund av bristen på systemresurser, och det kan inte hanteras av programmets kod. Fel kan inte återvinnas på något sätt eftersom de inte kan skapas, kastas, fångas eller svaras. Fel beror på det katastrofala felet som vanligen inte kan hanteras av ditt program.

Fel är alltid av okontrollerad typ, eftersom kompilatören inte har någon kunskap om dess förekomst. Fel uppstår alltid i körtidsmiljön. Felet kan förklaras med hjälp av ett exempel, programmet har ett fel i stacköverflödet, fel i minnet eller ett systemkraschfel. Denna typ av fel beror på systemet. Koden är inte ansvarig för sådana fel. Konsekvensen av felet är att programmet avslutas onormalt.

Definition av undantag

"Undantag" är också en underklass av inbyggd klass "Kastbar". Undantag är de exceptionella förutsättningarna som uppstår i en runtime miljö. De flesta gånger undantagen orsakas på grund av koden i vårt program. Men undantag kan hanteras av själva programmet, eftersom undantag kan återställas. Undantag hanteras genom att använda tre nyckelord "försök", "fånga", "kasta". Syntaxen för att skriva ett undantag är:

 prova {// skriv din kod här} Fånga (Undantags typ) {// skriv din kod här} 

I ovanstående kod är koden som skrivs i försöksblocket koden som du vill övervaka för undantaget. Om undantaget uppträder i ett försöksblock kastas det med "kasta" sökordet. Det undantagna kastet kan fångas av "catch" -blocket i ovanstående kod. "Undantags typ" är typen av undantaget som har inträffat.

I enkla ord kan vi säga att misstagen inträffade på grund av felaktig kod kallas undantag. Till exempel, om en efterfrågad klass inte hittas, eller om en efterfrågad metod inte hittas. Sådana undantag beror på koden i programmet; systemet är inte ansvarigt för sådana undantag. Undantagen är klassificerade som "kontrollerade" och "obekanta". Undantagna undantag är inte kända för kompilatorn som de uppträder under körtiden, men kompilatorn har kunskap om kontrollerade undantag som de är kända för kompilatorn under kompileringstiden.

Viktiga skillnader i fel och undantag

  1. Ett fel uppstår endast när systemresurserna är bristfälliga medan ett undantag orsakas om en kod har problem.
  2. Ett fel kan aldrig återställas, medan ett undantag kan återställas genom att förbereda koden för att hantera undantaget.
  3. Ett fel kan aldrig hanteras, men ett undantag kan hanteras av koden om koden som kastar ett undantag skrivs in i ett försök och fånga block.
  4. Om ett fel har uppstått, avslutas programmet onormalt. Å andra sidan, om undantaget uppstår, kommer programmet att kasta ett undantag, och det hanteras med hjälp av försöket och fångstblocket.
  5. Fel är av okontrollerad typ, dvs fel är inte kunskap om kompilatorer, medan ett undantag klassificeras som kontrollerat och avmarkerat.
  6. Fel definieras i java.lang.Error-paketet medan ett undantag definieras java.lang.Exception.

Slutsats:

Undantag är resultatet av misstag som gjorts vid kodningen av programmet, och felen är resultatet av systemets felaktiga funktion

Top