Hem Personliga finanser Hur man använder en Java-försök med resurser - dummies

Hur man använder en Java-försök med resurser - dummies

Video: Minecraft Skyblock #1 2024

Video: Minecraft Skyblock #1 2024
Anonim

Föreställ dig ett Java-program som får inmatning från två olika filer eller från en Skanner och en skiva fil. För att försäkra dig om att du rensar ordentligt, lägger du nära metodsamtal i en äntligen -klausul.

importera java. io. Fil;

importera java. io. IOException;

importera java. util. Scanner;

allmän klass Main {

statisk statisk tomt huvud (String args []) {

Scanner scan1 = null;

Scanner scan2 = null;

försök {

scan1 = ny skanner (ny fil ("File1. Txt"));

scan2 = ny skanner (ny fil ("File2. Txt"));

// Gör användbara saker

} fånga (IOException e) {

// Oj!

} äntligen {

scan1. stänga();

scan2. stänga();

System. ut. println ("Klart!");

}

}

}

I teorin exekverar datorn alltid scan1. close () och scan2. stäng () oavsett vad som går fel under körningen av försöket . Men det är teori. I själva verket kan en annan programmerare (inte självklart) ändra koden genom att stänga scan1 i mitten av försöket :

försök {

scan1 = ny skanner (ny fil ("File1. Txt"));

scan2 = ny skanner (ny fil ("File2. Txt"));

// Gör användbara saker men också …

scan1. stänga();

scan1 = null;

} fångst (IOException e) {

// Oj!

} äntligen {

scan1. stänga();

scan2. stänga();

System. ut. println ("Klart!");

}

Nu har du ett verkligt problem. Inne i äntligen -klausulen är värdet scan1 null . Samtalet till scan1. nära () misslyckas, så programmet slänger en NullPointerException och slutar köra innan samtalet går till scan2. close () . I de värsta fallen är scan2 inte stängd och ditt program har File2. txt låst så att inget annat program kan använda filen.

När ett program använder flera resurser (många filer, en databas och en fil, eller vad som helst) blir uppbyggnaden av försök uttalanden ganska komplicerade. Du kan göra försök uttalanden inom fånga klausuler och alla slags galen kombinationer. Men Java har ett bättre sätt att lösa problemet: I Java 7 (och senare versioner av Java) kan du skapa ett försök med resurser. Den här koden visar hur.

importera java. io. Fil;

importera java. io. IOException;

importera java. util. Scanner;

public class NewMain {

statisk statisk tomt huvud (String args []) {

försök (Scanner scan1 = new Scanner (ny fil ("File1.txt "));

Scanner scan2 = ny skanner (ny fil (" File2. txt "))) {

// Gör användbara saker

} fånga (IOException e) {

// Oops ! }

System. ut. println ("Done!");

}

}

I denna kod anges deklarationerna av

scan1 och scan2 är i parentes efter ordet försök . De parentesiserade deklarationerna berättar att Java stänger scan1 och scan2 automatiskt efter utförandet av uttalandena i > försök -klausulen. Du kan deklarera flera resurser inom ett försök uttalandets parentes. När du gör stänger Java alla resurser automatiskt efter utförandet av försök -klausulens uttalanden. Lägg till fångst klausuler och en äntligen -klausul, om du vill. Du kan komma åt alla typer av resurser (filer, databaser, anslutningar till servrar och andra) och ha lugn och ro att veta att Java kommer att separera anslutningarna automatiskt. Livet är bra.

Hur man använder en Java-försök med resurser - dummies

Redaktörens val

Hur man redigerar bilder i Redigera snabbläge för Photoshop Elements 9 - dummies

Hur man redigerar bilder i Redigera snabbläge för Photoshop Elements 9 - dummies

I Photoshop Element, Redigera Snabbt läge är en uppskattad version av Redigera fullt läge som ger grundläggande fixverktyg tillsammans med några unika funktioner, till exempel en förhandsgranskning av bilden. Här är ett steg för steg arbetsflöde som du kan följa i Redigera snabbläge för att reparera dina foton: Välj ett eller flera foton i ...

Hur man redigerar i Photoshop Elements 10: s Snabb Fotoredigeringsläge - dummies

Hur man redigerar i Photoshop Elements 10: s Snabb Fotoredigeringsläge - dummies

Snabb Fotoredigering är en uppskattad version av Full Photo Edit-läge som bekvämt ger grundläggande fixeringsverktyg och kastar i några unika egenskaper, till exempel en förhandsgranskning av bilden. Här är ett steg för steg arbetsflöde som du kan följa i Quick Photo Edit-läget för att reparera dina foton:

Hur man förbättrar Photoshop Elements-bilder med Photo Effects - dummies

Hur man förbättrar Photoshop Elements-bilder med Photo Effects - dummies

Fotoeffekter i Photoshop Elements 11 fungerar som applicera filter; medan dialogrutan Filtreringsgalleri ger dig många alternativ för att tillämpa ett filter, ger den guidade panelen dig filtereffekter och tar dig genom steg för att justera ljusstyrka, ändra färgton och mättnad och göra andra justeringar för att perfekta resultatet. Du ...

Redaktörens val

Hur man tar bort bilder från din Canon EOS 7D Mark II - dummies

Hur man tar bort bilder från din Canon EOS 7D Mark II - dummies

När du granskar en bild, bestämmer du om det är en målvakt. Om du tittar på en bild på din Canon EOS 7D Mark II, gillar du inte bilden av någon anledning kan du radera det. Men borttagning av bilder måste ske med stor försiktighet eftersom uppgiften inte kan ångras. När du har raderat en ...

Hur man redigerar filmer på en Canon EOS 60D - dummies

Hur man redigerar filmer på en Canon EOS 60D - dummies

60D Edit-funktionen gör det härligt enkelt för att ta bort oönskade delar från början eller slutet av en film direkt på din kamera. Denna ombordredigering är praktisk men grundläggande, så förvänta dig inte mirakel. Här är de enkla stegen för att trimma början eller slutet på en film: Klicka på ikonen Redigera (det ser ut ...

Redaktörens val

Hur man arbetar med text i ett Word 2010-tabell - dummies

Hur man arbetar med text i ett Word 2010-tabell - dummies

Text hinner i ett bord i Word 2010 på en cell-vid-cell basis. Varje cell i ett Word-bord kan ha ett eget styckeformat och en egen uppsättning flikar. Grupper av celler, rader och kolumner och hela tabellen kan väljas och formateras samtidigt, om du vill. All standardtext ...

Hur man arbetar med Word 2010: s decimala flik - dummies

Hur man arbetar med Word 2010: s decimala flik - dummies

Du kan använda decimalfliken i Word 2010 till rad upp kolumner av siffror. Även om du kan använda en rätt flik för att göra detta jobb är decimalfliken ett bättre val. I stället för högerjusterad text, som den högra fliken gör, justerar decimalfliken siffror efter deras decimaldel - perioden i ...

Hur man arbetar med flera Word 2010-dokument på samma gång - dummies

Hur man arbetar med flera Word 2010-dokument på samma gång - dummies

O saker Word 2010 kan göra med dokument! Du kan öppna flera Word-dokument samtidigt och arbeta på mycket av dem, växla mellan de olika öppna dokumenten. Öppnar flera Word-dokument samtidigt Det är inte en fråga om hur Word kan fungera på mer än ett dokument åt gången. Nej, ...