Java:Veahaldus

Allikas: Kursused
Redaktsioon seisuga 18. veebruar 2015, kell 00:00 kasutajalt Ago (arutelu | kaastöö)
Mine navigeerimisribale Mine otsikasti

Programmeerija peab koodi kirjutades arvestama võimalike eriolukordadega, mis võivad programmi käivitamisel tekkida. Töökindel programm on selline, mis suudab erinevate olukordadega toime tulla ilma, et jookseks kokku. Näiteks kui küsida massiivist negatiivse või liiga suure indeksiga elementi.

Töökindluse tõstmiseks on võimalik proovida kõik võimalikke vigu vältida ehk tegeleda ennetava tööga. Lisaks sellele pakub Java võimaluse tegeleda vigadega nende tekkimise hetkel (mingil märral nagu tulekahju kustutamine).

Vigade ennetamine

Mõni koodilõik vajab teatud tingimuste täitmist selleks, et korrektselt töötada. Kui vajalikud eeltingimused on täidetud, saab kood töötada ilma vigadeta.

Näiteks: <source lang="java"> if(i < 0 || i >= A.length) {

   // Do something to handle the
   // out-of-range index, i

} else{

   System.out.println(A[i]);

} </source>

Käsu System.out.println(A[i]); eeltingimuseks on i >= 0 && i < A.length.

Töökindel programm eeldab, et igal sammul tuleb kontrollida kõikide eeltingimuste täitmist. Eeltingimuste täitmist võib kontrollida if-lausega või jälgides, et tingimused on juba täidetud eelneva koodiga. Näiteks:

<source lang="java"> int index; Scanner s = new Scanner(System.in); while (true) {

   //  read next token until it's int
   while (!s.hasNextInt()) s.next();
   index = s.nextInt();
   if (index >= 0 && index < A.length)
       break;
   System.out.println("Your answer must be >= 0 and < " + A.length);

} // At this point, we can be absolutely sure that the value // of index is in the legal range of indices for the array A. System.out.println("A[" + index + "] is " + A[index]); </source>