Skapa Egna Undantag
Svep för att visa menyn
När du bygger mer komplexa Java-applikationer kan du stöta på fel som är unika för programmets logik. Även om Java tillhandahåller många inbyggda undantag, finns det ibland inget som tydligt beskriver det specifika problem du vill rapportera. I dessa fall kan du skapa egna anpassade undantag. Anpassade undantag gör det möjligt att ge meningsfulla namn åt felvillkor, vilket gör din kod lättare att förstå, underhålla och felsöka. Genom att definiera undantag som är anpassade efter applikationens behov hjälper du andra utvecklare (och dig själv i framtiden) att snabbt identifiera och hantera specifika felsscenarier.
För att skapa ett anpassat undantag definierar du en ny klass som utökar antingen klassen Exception eller klassen RuntimeException. Om ditt undantag ska vara kontrollerat (det vill säga att kompilatorn tvingar dig att hantera det med ett try-catch-block eller deklarera det med throws), utöka Exception. Om det ska vara okontrollerat (inte tvingas av kompilatorn), utöka RuntimeException. Ditt anpassade undantag kan innehålla konstruktorer, fält och metoder precis som vilken annan klass som helst, men det är vanligt att tillhandahålla åtminstone en konstruktor som accepterar ett meddelande som beskriver felet.
Main.java
123456789101112131415161718192021222324package com.example; class InvalidAgeException extends Exception { public InvalidAgeException(String message) { super(message); } } public class Main { public static void checkAge(int age) throws InvalidAgeException { if (age < 18) { throw new InvalidAgeException("Age must be at least 18."); } System.out.println("Access granted. Age is valid."); } public static void main(String[] args) { try { checkAge(15); } catch (InvalidAgeException e) { System.out.println("Caught exception: " + e.getMessage()); } } }
I koden ovan definieras ett eget kontrollerat undantag genom att skapa klassen InvalidAgeException, som ärver från Exception. Denna klass har en konstruktor som tar emot ett felmeddelande. Metoden checkAge kastar ett InvalidAgeException om den angivna åldern är mindre än 18.
I main-metoden anropas checkAge(15), vilket utlöser undantaget. try-catch-blocket fångar undantaget och skriver ut dess meddelande. Detta mönster visar hur egna undantag kan användas för att hantera specifika felvillkor på ett tydligt och organiserat sätt.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal