Java-sproget giver undtagelsen model, så udviklerne kan håndtere situationer, hvor normal programafvikling går galt. Der er mange måder et program kan tage en uventet drejning , men et par generelle typer af aktiviteter er tilbøjelige til disse situationer , såsom input /output , behandling med arrays og nogle aritmetiske beregninger. At have en forståelse af , hvordan man håndterer undtagelser i dine Java -programmer er en af de centrale færdigheder , der er involveret i at blive en udvikler. Instruktioner
1
Opret din Java -program , ved hjælp af følgende skitse som din klasse og vigtigste metode : Hej
import java.io. * ;
public class ExceptionDemo {
public static void main ( String [] args ) {
FileWriter fileOut = new FileWriter ( " outputfile.txt ")
PrintWriter udskrift = new PrintWriter ( fileOut ) ;
printOut.println ( "Tekst bliver udskrevet til fil ");
printOut.close ();
fileOut.close ();
< p > }}
p Hvis du indsætter denne kode i en IDE (Integrated Development Environment) , der fremhæver kode fejl , vil du se , at det ikke engang vil være i stand til at kompilere , fordi der er en " ubehandlet undtagelse ". Den FileWriter constructor metode kan smide en undtagelse , for eksempel hvis den fil, du har angivet ikke kan findes
2
Placer koden med afviklet undtagelse i en " prøve " block som følger: .
try {
FileWriter fileOut = new FileWriter ( " outputfile.txt ")
PrintWriter udskrift = new PrintWriter ( fileOut )
printOut.println ( " Tekst bliver udskrevet til fil ");
printOut.close ();
fileOut.close ();
}
det skulle forhindre compiler fra klager over de linjer, der var årsag afviklet undtagelse fejl , men vil skabe en ny type fejl , fordi den " try " erklæring endnu ikke er afsluttet . Den " try" erklæring er dybest set en beholder til kode, der kan smide en undtagelse , men du stadig nødt til at oplyse, hvad der skal ske, hvis en undtagelse er kastet kendsgerning.
3
Indsæt et " fange "erklæring som følger ( efter lukning" try " beslag ) : Hej
catch ( IOException OIE ) {
System.out.println ( " IOException er opstået : "+ ioe.getMessage ( )),
}
det burde være nok til at holde compiler glad, og vil give dig mulighed for at køre dit program. Men alt hvad du har gjort , er at forhindre programmet går ned hvis en undtagelse er smidt på dette punkt. Afhængigt af detaljerne i din ansøgning, kan du ønsker at indsætte anden kode her at afspejle, hvad der er i din " try" block , som denne kode ikke er blevet henrettet . Så snart undtagelse kastes , vil udførelse springe direkte til " catch "-koden .
4
Tilføj yderligere undtagelse handlere. Afhængigt af arten af dit program , kan det være tilrådeligt at medtage anden kode for bestemte typer af undtagelse. For eksempel, før " IOException " handleren kunne omfatte : Hej
catch ( FileNotFoundException fnfe ) {
System.out.println ( " FileNotFoundException er opstået :" + fnfe.getMessage () ) ;
}
p Dette er en mere specifik type fejl end IOException , så hvis kastet undtagelse er ikke en FileNotFoundException , vil din kode springe til den mere generelle IOException handleren i stedet. Sammenkædning dine undtagelse handlere på denne måde giver dig mulighed for at diktere , hvad der skal ske for hver type fejl.