Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Vytvorte si svoj program v jazyku Java , pomocou nasledujúcej osnovy ako triedy a hlavné metódy :
import java.io. * ;
public class ExceptionDemo {
public static void main ( String [ ] args ) {
FileWriter fileOut = new FileWriter ( " outputfile.txt " ) ;
PrintWriter výtlačok = new PrintWriter ( fileOut ) ;
printOut.println ( " Text sa vytlačí do súboru " ) ;
printOut.close ( ) ;
fileOut.close ( ) ;
} }
Ak vložíte tento kód do IDE ( Integrated Development Environment ) , ktorý upozorňuje kód chyby , uvidíte , že to ani nebude schopný zostaviť , pretože tam je " neošetrené výnimke . " Metóda FileWriter Konštruktor môže vyvolať výnimku , napríklad v prípade, že súbor , ktorý ste zadali nemožno nájsť
2
Umiestnite kód s nechránenú výnimku do " vyskúšať " bloku takto : .
try {
FileWriter fileOut = new FileWriter ( " outputfile.txt " ) ;
PrintWriter výtlačok = new PrintWriter ( fileOut ) ;
printOut.println ( " text je vytlačiť do súboru " ) ;
printOut.close ( ) ;
fileOut.close ( ) ;
}
To by malo zabrániť prekladač z sťažujú na linkách , ktoré boli spôsobujúce neošetrené chyby výnimku , ale vytvoriť nový typ chyby , pretože " vyskúšať " vyhlásenie ešte nie je dokončená . " Pokúsiť " vyhlásenie je v podstate obal pre kód , ktorý môže vyvolať výnimku , ale stále máte , aké by sa stalo , keby výnimka je v podstate vyhodený .
3
Vložte " chytiť " vyhlásenie takto ( po uzavretí " skúsiť " držiak ) :
úlovku ( IOException OIE ) {
System.err.println ( " Došlo IOException : " + ioe.getMessage ( ) ) ;
}
To by malo byť dosť , aby kompilátor šťastný , a umožní vám spustiť program . Avšak , všetko , čo ste urobil , je zabrániť program od zhadzovať , ak je vyvolaná výnimka v tomto bode . V závislosti na detaily vašej aplikácie , môžete vložiť iný kód tu sa odráža to , čo je vo vašej " skúsiť " bloku , pretože sa neuskutočnili , že kód . Akonáhle je výnimka , bude výkon skočiť rovno do kódu " úlovku " .
4
Pridať ďalšie handler . V závislosti od charakteru vášho programu , môže byť vhodné zahrnúť iný kód pre konkrétne typy výnimkou . Napríklad , pred psovoda " IOException " si môže zahŕňať :
západku ( FileNotFoundException fnfe ) {
System.err.println ( "Došlo FileNotFoundException : " + fnfe.getMessage ( ) ) ;
}
Jedná sa o špecifický typ chyby než IOException , takže v prípade , že výnimka nie je FileNotFoundException , bude váš kód skok na všeobecnejšej psovoda IOException miesto . Reťazové svoje handler týmto spôsobom umožňuje diktovať , čo presne by sa malo stať pre každý typ chyby .