Java språket är konstruerat för att hantera fel och andra oförutsedda händelser med ett undantag koncept . När ett fel inträffar , är ett undantag objekt genereras och skickas ( eller kastas ) upp samtalet stacken tills den hittar en metod för att hantera ( eller fånga ) som undantag . Java kommer med massor av undantag föremål , men programmerare kan också skapa egna . Definiera en anpassad Undantag Klass
undantag
Anpassade definieras på exakt samma sätt som alla andra Java-klass . Den enda viktig regel är att ett undantag måste utöka Undantag klassen i java.lang biblioteket . Detta görs på samma sätt som alla andra klassen utökar en annan . Ett exempel på en användardefinierad undantaget skulle vara :
klass MyException utökar Exception {
}
Du kan lägga till egna metoder och konstruktorer till undantag klassen i syfte att anpassa det till dina ändamål , men bara genom att utvidga basklassen får du de vanliga undantag konstruktorer och metoder , inklusive möjligheten att definiera felmeddelanden .
kasta en anpassad Exception
Om du vill använda din anpassade undantag , måste du kasta det någonstans i programmet , på samma sätt som alla andra undantag . Till exempel visar följande trivialt exempel hur man kastar ett undantag för att förhindra att en metod från dividera med noll :
public double klyftan ( dubbel utdelning , dubbel divisor ) kastar MyException {
p Om ( delare == 0 ) kasta nytt MyException ( " försökte dividera med noll ! " ) ;
utdelning /delare ,
}
problemet kontrollerar om divisorn är lika med noll. Om det är, då en ny MyException objekt skapas och kastas med ett lämpligt felmeddelande . Den del av programmet som kallas " klyftan " -funktionen skulle då vara ansvarig för att besluta hur man ska hantera undantag .
Varför Använd Undantag ?
Fel kontroll är en viktig del av alla program . Även om programmerarens arbete är perfekt , är input från användaren , det lokala filsystemet och Internet sällan , om någonsin , måste perfekt, så programmen vara beredd att ta itu med problemen . Ofta , emellertid , är den del av koden som hittar problemet inte den del av koden bäst lämpad att ta itu med problemet. En funktion som delar upp ett stycke text i ord bör , helst , inte behöver oroa sig om ett tomt stycke är ett fel som kräver stängning av programmet , en märklig händelse som ska rapporteras till användaren , eller irrelevant . Undantag gör det möjligt att rapportera problemet till andra delar av programmet som är bättre lämpade för att korrigera det . Addera Varför använda Custom Undantag ?
Java kommer med massor av undantag klasser fördefinierade , men ibland hjälper det att ha en uppsättning undantag som bättre passar det aktuella problemet så att programmet kan lättare reagera på dem . Till exempel , istället för Javas generiska " InvalidArugmentException , " den del av koden som ansvarar för att återhämta sig från fel kan behöva veta mer i detalj om problemet . Detta kan göras genom att dela undantaget i Custom " UnexpectedNullArgumentException " och " OutOfRangeException . " Addera