Innehållsförteckning
Alla program är utsatta för fel, detta är oundvikligt eftersom oavsett hur mycket vi ger det kan det alltid hända något som bryter flödet av vår applikation, när ett fel uppstår måste vi hitta det mest eleganta sättet att låta användaren veta utan att kompromissa med privata information om vår miljö.För dessa fall har vi undantagDetta är objekt som byggs och höjs när ett fel inträffar som förhindrar normal användning av applikationen, detta ger oss möjlighet att hantera det och förhindra att programmet slutar oväntat, och därmed kunna ge ett mer elegant meddelande till användarnamnet.
Som vi anger undantag De är objekt som tas upp när ett fel uppstår vid körningen av vårt program, om vi inte hanterar dem ordentligt slutar det oväntat och visar felet för vilket det misslyckades.
UndantagshanteringFör att kontrollera detta måste vi hantera undantaget, detta innebär att fånga objektet och köra en specifik instruktion, för detta har vi en struktur i Java kallade blocket prova {} catch (typ av undantag) {} med vilken vi kan utvärdera en instruktion och om ett undantag inträffar fånga den och köra en alternativ kod.
Det finns också tillfällen när vi är de som frivilligt måste ta upp undantaget, antingen som en del av en programfelsökning eller för att vi inom vår utvecklingslogik vill kasta ett undantag om någon kombination av förhållanden inträffar, för detta har vi metoden kasta () som kommer från engelska att kasta.
Låt oss se nedan den fullständiga strukturen som vi kan använda för att omsätta ovannämnda i praktiken:
försök {// här är koden för att försöka utföra // här kan vi kasta ett undantag med kastmetoden för att vilja} catch (typeException ex) {// när undantaget fångas, här är koden som kommer att fortsätta att köras }
Som vi ser strukturen inte innebär något som vi inte kan förstå, låt oss titta på ett mer ingående exempel.
Vi kommer nu att göra ett program som gör uppdelningen av två heltal, som vi borde veta, om vi delar ett heltal med noll 0 kommer ett fel att uppstå, i detta fall ett undantag för den aritmetiska typen, som vi ska fånga och förhindra att vårt program misslyckas fruktansvärt. Låt oss se koden som ska användas:
importera java.util.Scanner; public class DivisionException {public static int quotient (int number1, int number2) {if (number2 == 0) throw new ArithmeticException ("Delaren kan inte vara 0"); returnummer1 / nummer2; } public static void main (String [] args) {Scanner input = new Scanner (System.in); System.out.println ("Ange två hela tal:"); int nummer1 = input.nextInt (); int nummer2 = input.nextInt (); prova {int resultat = kvot (tal1, tal2); System.out.println (nummer1 + "/" + nummer2 + "är" + resultat); } catch (ArithmeticException ex) {System.out.println ("Undantag: ett heltal" + "kan inte delas med 0"); } System.out.println ("Här är vårt program"); }}
Vi märker att undantaget kastas med metoden kasta inuti en anpassad metod som gör uppdelningen av heltal, då kallar vi den här metoden inuti vår försök blockera och slutligen om undantaget inträffar vi fånga det och visa det nödvändiga felet och sedan kan vi fortsätta med vårt program. Låt oss se hur det ser ut på vår konsol:
FÖRSTORA
Med detta avslutar vi vår handledning med att effektivt ha demonstrerat hur vi kan hantera undantag på ett grundläggande sätt och därmed undvika ett dödligt fel som förstör flödet av vårt program.Gillade du och hjälpte denna handledning?Du kan belöna författaren genom att trycka på den här knappen för att ge honom en positiv poäng