1. throw
operator
Kapag ang isang pagbubukod ay nakuha ng isang catch
bloke, at hanggang sa ito ay itapon sa Java machine, ito ay isang bagay lamang na nagmamana Exception
(o sa halip, Throwable
). Ang exception object mismo ay walang anumang mahiwagang katangian.
Ang lahat ng lohika kung paano gumagana ang mga pagbubukod ay isang espesyal na paraan lamang na kumikilos ang makina ng Java kapag ang isang pagbubukod ay itinapon dito.
Maaari mong palaging i-rethrow ang isang nahuli na exception sa Java machine. Upang gawin ito, kailangan mong gamitin ang throw
operator:
throw exception;
Halimbawa:
Code | Output ng console |
---|---|
|
|
Sa code na ito, nakakuha kami ng exception, nagpakita ng mensahe tungkol dito sa screen, at pagkatapos ay ibinalik ito.
Ang isang rethrown exception ay hindi maaaring makuha ng ibang catch
mga block sa parehong try
block.
2. Ang iyong mga pagbubukod
Sa pamamagitan ng paraan, maaari kang lumikha ng isang exception object sa iyong sarili: ito ay isang bagay lamang na ang uri ay Exception
o isang klase na nagmamana nito. At itapon ito.
Ito ay mas madali kaysa ito tunog. Halimbawa:
Code | Output ng console |
---|---|
|
|
Sa halimbawa sa itaas, gumawa kami ng bagong exception object na ang uri ay RuntimeException
at agad itong inihagis gamit ang throw
operator.
Agad itong mahuhuli ng catch
block, dahil ang RuntimeException ay nagmamana Exception
. Ang catch (Exception except)
code ay nakakakuha ng mga exception object ng lahat ng klase na nagmamana ng Exception
klase.
3. finally
keyword
Isa pang mahalagang punto. Minsan ang isang programmer ay kailangang gumawa ng ilang aksyon kahit na may eksepsiyon na naganap sa code. Halimbawa, ipagpalagay na nagbukas kami ng isang file para sa pagsusulat. Ang binuksan na file ay dapat na sarado sa pamamagitan ng pagtawag close()
.
try
{
// Code where an exception might occur
}
catch(ExceptionType name)
{
// Exception handling code
}
finally
{
// Code that must executed no matter what happens
}
Upang maisagawa ang mga ipinag-uutos na pagkilos na ito, isa pang uri ng block ( finally
) ang idinagdag sa try-catch
construct, at sa gayon ay lumilikha ng try-catch-finally
construct. Mukhang ganito:
Halimbawa:
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();
}
Ang code sa finally
block ay isasagawa sa anumang kaso, hindi alintana kung mayroong isang pagbubukod. Kahit na ang isang pagbubukod ay itinapon at hindi nahuli, ang finally
block ay isasagawa pa rin.
Sa pamamagitan ng paraan, kung hindi mo nais na makakuha ng isang pagbubukod, ngunit kailangan mo ng isang finally
bloke, gamitin ang shorthand notation para sa try-catch-finally
construct: isang try-finally
bloke. Mukhang ganito:
try
{
// Code where an exception might occur
}
finally
{
// Code that must executed no matter what happens
}
GO TO FULL VERSION