Java ger undantaget modellen så att utvecklarna kan hantera situationer där normal programkörning går fel. Det finns många sätt ett program kan ta en oväntad vändning , men några generella typer av aktiviteter är benägna att dessa situationer, såsom input /output , bearbetning med arrayer och vissa beräkningar aritmetiska . Att ha en uppfattning om hur man ska hantera undantag i dina Java -program är ett av de viktigaste färdigheter involverade i att bli en utvecklare . Instruktioner
1
Skapa din Java -program , med hjälp av följande disposition som din klass och huvudsakliga metoden :
import java.io. *;
public class ExceptionDemo {
public static void main ( String [] args ) {
FileWriter fileOut = ny FileWriter ( " outputfile.txt " ) ;
PrintWriter utskriften = ny PrintWriter ( fileOut ) ;
printOut.println ( " Text som skrivs ut till fil " ) ;
printOut.close ( ) ;
fileOut.close ( ) ;
} }
p Om du klistra in den här koden i en IDE ( Integrated Development Environment ) som belyser kod fel , kommer du se att det inte ens kommer att kunna kompilera eftersom det finns en " ohanterat undantag . " Den FileWriter konstruktormetod kan kasta ett undantag , till exempel om filen du har specificerat inte kan hittas
2
Placera koden med undantag som inte hanteras i ett " försök " blocket enligt följande : .
try {
FileWriter fileOut = ny FileWriter ( " outputfile.txt " ) ;
PrintWriter utskriften = ny PrintWriter ( fileOut ) ;
printOut.println ( " text som skrivs ut till fil " ) ;
printOut.close ( ) ;
fileOut.close ( ) ;
}
Detta bör hindra kompilatorn från klaga på linjerna som orsakar ohanterade undantag fel , men kommer att skapa en ny typ av fel eftersom " try " uttalande är ännu inte avslutad . Den " prova " uttalande är i grunden en behållare för kod som kan generera ett undantag , men du har fortfarande att ange vad som ska hända om ett undantag är kastat faktum .
3
Infoga ett " fånga " uttalande enligt följande ( efter stängning " prova " fäste ) :
catch ( IOException OIE ) {
System.err.println ( " IOException har inträffat : " + ioe.getMessage ( ) ) ;
}
Detta bör vara tillräckligt för att hålla kompilatorn glada , och gör att du kan köra ditt program . Men är allt du har gjort hindra programmet från att krascha om ett undantag kastas vid denna punkt . Beroende på detaljerna i programmet , kanske du vill infoga andra koden här för att spegla vad som finns i din " prova " blocket , så att kod inte ska ha avrättats . Så snart undantaget kastas , kommer exekveringen hoppa direkt till " fångsten " kod .
4
Lägg extra undantagshanterare . Beroende på vilken typ av ditt program , kan det vara lämpligt att inkludera annan kod för särskilda typer av undantag . Till exempel , innan " IOException " handler du kan inkludera :
spärren ( FileNotFoundException fnfe ) {
System.err.println ( " FileNotFoundException har inträffat: " + fnfe.getMessage ( ) ) ;
}
Detta är en mer specifik typ av fel än IOException , så om undantaget kastas är inte en FileNotFoundException , kommer koden att hoppa till den mer allmänna IOException handler istället . Chaining dina undantagshanterare på detta sätt kan du diktera exakt vad som ska hända för varje typ av fel .