1. throwoperator

Nalika pangecualian kejiret dening catchpemblokiran, lan nganti di buwang menyang mesin Jawa, iku mung obyek warisan Exception(utawa rodo, Throwable). Obyek pangecualian dhewe ora nduweni sipat magis.

Kabeh logika carane pangecualian bisa mung cara khusus mesin Jawa tumindak nalika pangecualian dibuwang menyang.

Sampeyan bisa tansah rethrow istiméwa kejiret kanggo mesin Jawa. Kanggo nindakake iki, sampeyan kudu nggunakake throwoperator:

throw exception;

Tuladha:

Kode Output konsol
try
{
   int d = 2/0;
}
catch(Exception except)
{
   System.out.println("Caught the exception");
   throw except;
}
Caught the exception

Ing kode iki, kita kejiret pangecualian, ditampilake pesen babagan ing layar, lan banjur rethrew iku.

Pangecualian rethrown ora bisa kejiret dening catchpamblokiran liyane ing pemblokiran padha try.


2. Pangecualian Panjenengan

Miturut cara, sampeyan bisa nggawe obyek pangecualian dhewe: iku mung obyek kang jinis Exceptionutawa kelas sing oleh warisan. Lan uncalan.

Iku luwih gampang saka muni. Tuladha:

Kode Output konsol
try
{
   throw new RuntimeException();
}
catch(Exception except)
{
   System.out.println("Caught the exception");
   throw except;
}
Caught the exception

Ing conto ing ndhuwur, kita nggawe obyek istiméwa anyar kang jinis RuntimeExceptionlan langsung mbuwang nggunakake throwoperator.

Iku bakal langsung kejiret dening catchpemblokiran, wiwit RuntimeException warisan Exception. Kode catch (Exception except)nyekel obyek pangecualian saka kabeh kelas sing marisi Exceptionkelas kasebut.



3. finallytembung kunci

Titik penting liyane. Kadhangkala programer kudu nindakake sawetara tumindak preduli saka apa ana pangecualian ing kode. Contone, umpamane kita mbukak file kanggo nulis. File sing dibukak kudu ditutup kanthi nelpon close().

try
{
   // Code where an exception might occur
}
catch(ExceptionType name)
{
   // Exception handling code
}
finally
{
   // Code that must executed no matter what happens
}

Kanggo nindakake tumindak wajib kasebut, jinis blok liyane ( finally) ditambahake ing try-catchkonstruk, saengga nggawe try-catch-finallykonstruksi kasebut. Katon kaya iki:

Tuladha:

FileInputStream source = null;
try
{
   source = new FileInputStream("c:\\note.txt");
   source.read();
}
catch(Exception except)
{
   System.out.println("Caught the exception");
   throw except;
}
finally
{
   if (source != null)
      source.close();
}

Kode ing finallyblok kasebut bakal dieksekusi ing kasus apa wae, preduli yen ana pangecualian. Sanajan pangecualian dibuwang lan ora kejiret, finallyblok kasebut isih bakal ditindakake.

Miturut cara, yen sampeyan ora pengin nyekel pangecualian, nanging sampeyan mbutuhake blok finally, gunakake notasi shorthand kanggo mbangun try-catch-finally: try-finallyblok. Iku katon kaya iki:

try
{
   // Code where an exception might occur
}
finally
{
   // Code that must executed no matter what happens
}