Java-sproget er konstrueret til at håndtere fejl og andre uforudsete begivenheder, ved hjælp af en undtagelse koncept. Når der opstår en fejl , er en undtagelse objekt genereres og bestået ( eller kastet ) op kaldstakkens indtil den finder en metode designet til at håndtere ( eller fangst ), der undtagelse. Java kommer med snesevis af undtagelse objekter, men programmører kan også oprette deres egne. Definerer et brugerdefineret Exception Class
Brugerdefineret undtagelser er defineret i nøjagtig samme måde som alle andre Java-klasse . Den eneste vigtige regel er, at en undtagelse skal udvide Exception klasse i java.lang biblioteket. Dette gøres på samme måde som enhver anden klasse stikker yderligere . Et eksempel på en brugerdefineret undtagelse ville være : Hej
class MyException udvider Exception {
}
p Du kan tilføje dine egne metoder og konstruktører til din undtagelsen klasse for at tilpasse det til dit formål , men blot ved at udvide basisklassen vil du få standard undtagelse konstruktører og metoder , herunder evnen til at definere fejlmeddelelser.
Smide en brugerdefineret Exception
< p> Hvis du vil bruge din brugerdefinerede undtagelse , er du nødt til at smide det et sted i programmet , det samme som enhver anden undtagelse. For eksempel illustrerer følgende trivielt eksempel hvordan man kaster en undtagelse for at forhindre en metode fra dividere med nul : Hej
offentlig double kløft ( dobbelt dividende , dobbelt divisor ) kaster MyException {
if ( divisor == 0) kaste nyt MyException ( " Division med nul forsøgt ! ")
retur udbytte /divisor ,
}
problemet tjekker om divisor er lig med nul . Hvis det er , så en ny MyException objekt er oprettet og kastes med en passende fejlmeddelelse. Uanset hvilken del af programmet kaldes " kløft" funktionen ville så være ansvarlig for at beslutte, hvordan til at håndtere undtagelsen.
Hvorfor bruge Undtagelser ?
Fejl kontrol er en kritisk del af ethvert program . Selv hvis programmøren arbejde er perfekt, input fra brugeren , det lokale filsystem og internettet er sjældent, om nogensinde , skal perfekt, så programmerne være parat til at håndtere problemer . Men ofte den del af den kode, der finder problemet er ikke den del af koden bedst egnet til at håndtere problemet . En funktion , der opdeler et tekstafsnit i ord ideelt set skulle ikke at bekymre sig om , hvorvidt et tomt afsnit er en fejl , der kræver lukning af programmet , en mærkelig begivenhed, der skal rapporteres til brugeren, eller irrelevante . Undtagelser gør det muligt at rapportere problemet til andre dele af programmet , som er bedre egnet til at korrigere det.
Hvorfor bruge brugerdefinerede undtagelser ?
Java kommer med snesevis af undtagelser klasser foruddefinerede , men nogle gange hjælper det at have et sæt af undtagelser, der bedre passer til problemet ved hånden , så programmet kan lettere reagere på dem . For eksempel, " , InvalidArugmentException " snarere end Java generiske den del af koden er ansvarlig for inddrivelse af fejl kan have brug for at vide mere detaljer om problemet. Dette kunne ske ved at opdele undtagelsen i custom " UnexpectedNullArgumentException " og " OutOfRangeException . "