Video: A global food crisis may be less than a decade away | Sara Menker 2024
Ett försök uttalande används för att fånga undantag som kan kastas när ditt program körs. Du bör använda ett försök uttalande när du använder ett uttalande som kan göra ett undantag På så sätt kommer ditt program inte att krascha om undantaget inträffar.
Försöket har den här generella formen:
försök { uttalanden som kan kasta undantag } fångst ( undantags-typidentifierare ) { uttalanden som utförs när undantag är kastade } äntligen { uttalanden som utförs om huruvida undantag inträffar
De uttalanden som kan göra ett undantag inom ett provblock. Då fångar du undantaget med ett fångstblock. Slutligen blocket används för att tillhandahålla uttalanden som exekveras oavsett om några undantag inträffar.
Här är ett enkelt exempel:
int a = 5; int b = 0; // du vet att det här inte kommer att fungera försök {int c = a / b; // men du försöker ändå} fånga (AritmeticException e) {System. ut. println ("Det går inte att göra det!");}
I det föregående exemplet kastas ett del-vid-noll-undantag när programmet försöker dela en av b. Detta undantag är avlyssnat av fångstblocket, vilket visar ett felmeddelande på konsolen.
Här är några saker att notera om försök:
-
Du kan koda mer än ett fångstblock. På så sätt, om uttalandena i försöksblocket kan kasta mer än en typ av undantag, kan du fånga varje typ av undantag i ett separat fångstblock.
I Java 7 kan du fånga mer än ett undantag i ett enda fångstblock. Undantagen separeras med vertikala staplar, så här:
försök {// uttalanden som kan kasta // FileNotFoundException // eller IOException} fånga (FileNotFoundException | IOException e) {System. ut. println (e. getMessage ());}
-
Ett försöksblock är ett eget fristående block, separat från fångstblocket. Som ett resultat är de variabler du förklarar i försöksblocket inte synliga för fångstblocket. Om du vill att de ska vara, förklara dem omedelbart före försöket.
-
De olika undantagstyperna definieras som klasser i olika paket i Java API. Om du använder en undantagsklass som inte är definierad i standard java. lang-paket som alltid är tillgängligt måste du ange ett importdeklaration för paketet som definierar undantagsklassen. Till exempel:
importera java. io. *;
-
Om du vill ignorera undantaget kan du fånga undantaget i fångstblocket som inte innehåller några uttalanden, så här:
försök {// uttalanden som kan kasta // FileNotFoundException} fångst (FileNotFoundException e) {}
Denna teknik kallas "svalka undantaget" och anses vara en farlig programmeringspraxis eftersom programfel kan bli oupptäckta.