TOP > Java > Îã³°¤ÈÎã³°½èÍý |
Îã³°¤ÈÎã³°½èÍý
Java¤ÇÎ㳰Ū¤Ê½ÐÍè»ö¤¬µ¯¤³¤ë¤³¤È¤ò¡¢Îã³°¤¬Åꤲ¤é¤ì¤ë¡Êbe thrown¡Ë¤Èɽ¸½¤¹¤ë¡£Îã³°¤ËÂн褷¤Æ²¿¤«¤Î¼Â¹Ô¤ò¤¹¤ëÀÕǤ¤ò»ý¤Ä¥³¡¼¥É¤Î¤³¤È¤ò¡ÖÎã³°¥Ï¥ó¥É¥é¡×¤È¤¤¤¦¡£Îã³°¥Ï¥ó¥É¥é¤Ï¡¢Åꤲ¤é¤ì¤¿Îã³°¤ò¡Ö¥¥ã¥Ã¥Á¡×¡Êcatch¡Ë¤¹¤ë¡£Îã³°½èÍý¤Ï¡¢Îã³°¤¬µ¯¤¤¿¤È¤¡Ê0¤Ç³ä¤Ã¤¿¤Ê¤É¡Ë¡¢¥×¥í¥°¥é¥à¤Î¼Â¹Ô¤òŬÀÚ¤ÊÎã³°¥Ï¥ó¥É¥é¤ËžÁ÷¤¹¤ë¤³¤È¤Çµ¡Ç½¤¹¤ë¡£ÆÃÄê¤ÎÎã³°¤¬È¯À¸¤·¤¿»þ¡¢¼Â¹Ô¤¹¤Ù¤¥³¡¼¥É¤òJVM¤Ë¤ËÅÁ¤¨¤ë¤¿¤á¤Ëtry¥¡¼¥ï¡¼¥É¤Ècatch¥¡¼¥ï¡¼¥É¤ò»È¤¦¡£try¥¡¼¥ï¡¼¥É¤Ï¡¢Îã³°¤¬È¯À¸¤¹¤ë²ÄǽÀ¤Î¤¢¤ë¥³¡¼¥É¥Ö¥í¥Ã¥¯(ÊݸîÎΰè)¤òÄêµÁ¤¹¤ë¤¿¤á¤Ë»ÈÍÑ¡£catch¥¡¼¥ï¡¼¥É¤Ï¡¢ÆÃÄê¤ÎÎã³°(Àµ³Î¤Ë¤ÏÎã³°¥¯¥é¥¹)¤ò¤½¤ì¤ò½èÍý¤¹¤ë1¤Ä¤Þ¤¿¤ÏÊ£¿ô¤Î¥³¡¼¥É¥Ö¥í¥Ã¥¯¤ËÂбþÉÕ¤±¤ëƯ¤¤ò¤¹¤ë¡£
try¶ç¤Ècatch¶ç¤Î»È¤¤Êý
try catch¶ç¤ÎÎã
try{ //Îã³°¤ÎÅꤲ¤½¤¦¤Ê¥³¡¼¥É¤ò½ñ¤¯ } catch(Îã³°¥¯¥é¥¹ ÊÑ¿ô̾){ //Îã³°¥Ï¥ó¥É¥é //Îã³°¤ò½èÍý¤¹¤ë¥³¡¼¥É¤ò½ñ¤¯ } catch(Îã³°¥¯¥é¥¹ ÊÑ¿ô̾){ //Îã³°¥Ï¥ó¥É¥é //Îã³°¤ò½èÍý¤¹¤ë¥³¡¼¥É¤ò½ñ¤¯ } //´í¸±¤Î¤Ê¤¤¥³¡¼¥É¤ò½ñ¤¯ //¤³¤Îʸ¤ÏÎã³°¤¬È¯À¸¤·¤è¤¦¤¬¤·¤Ê¤«¤í¤¦¤¬É¬¤º¼Â¹Ô¤µ¤ì¤ë¡£ catch¶ç¤ÎÄêµÁ
catch(Îã³°¥¯¥é¥¹Ì¾ ¥ª¥Ö¥¸¥§¥¯¥ÈÊÑ¿ô̾){ /*½èÍýÆâÍÆ*/}
catch¶ç¤Î½ñ¤Êý¤ÎÎã
public class Test{ public static void main(String[] args){ int i = 10 ; int j = 0 ; try{ System.out.println(i/j) ; } catch(ArithmeticException e){ System.out.println("0¤Ç½ü»»¤·¤Þ¤·¤¿¡£") ; e.printStackTrace() ; } } } ¤³¤ÎÎã³°¤Ï¡¢RuntimeException¤ÎÎã³°¤Ç¤¢¤ê¡¢try-catch¶ç¤ò½ñ¤«¤Ê¤¯¤Æ¤â¡¢¥³¥ó¥Ñ¥¤¥ë¤Ç¤¤ë¡£¤Þ¤¿¡¢¼«Æ°Åª¤Ë¥¹¥¿¥Ã¥¯¥È¥ì¡¼¥¹¤ò¼Â¹Ô»þ¤Ëɽ¼¨¤·¤Æ¤¯¤ì¤ë¤Î¤Ç¡¢Îã³°¤Î²Õ½ê¤ÎȽÊ̤¬¤ï¤«¤ê¤ä¤¹¤¤¡£¤·¤«¤·¡¢RuntimeException¥¯¥é¥¹°Ê³°¤Î¾ì¹ç¤Ï¡¢try-catch¶ç¤â¤·¤¯¤Ï¡¢throws¤ò»È¤ï¤Ê¤¤¾ì¹ç¥³¥ó¥Ñ¥¤¥ë¤Ç¤¤Ê¤¤¡£
Îã³°¤ÎȯÀ¸¤Ë¤è¤ê¥³¥ó¥Ñ¥¤¥ë¤Ç¤¤Ê¤¤¾ì¹ç¤ÎÎã
import java.io.* ; public class Test{ public static void main(String[] args){ FileReader file = new FileReader("sample.txt") ; } } ¤³¤ÎÎã¤Ï¥³¥ó¥Ñ¥¤¥ë¤Ç¤¤Ê¤¤¡£²¿¸Î¤Ê¤é¥Õ¥¡¥¤¥ë¤¬¤Ê¤¤¤³¤È¤Ë¤è¤ê¡¢FileNotFoundException¤¬À¸À®¤µ¤ì¤ë¡£¤³¤ì¤òÂн褹¤ë¤Ë¤Ï¡¢try-catchʸ¤ÇÎã³°¤òÅꤲ¤Æ½èÍý¤¹¤ë¤·¤«¤Ê¤¤¡£¼¡¤ÎÎã¤Ï¥³¥ó¥Ñ¥¤¥ë¤Ç¤¤ë¡£
Îã³°¤Î½èÍý¤ÎÎã
public class Test{ public static void main(String[] args){ try{ FileReader file = new FileReader("sample.txt") ; } catch(FileNotFoundException e){ System.out.println("Îã³°¤¬È¯À¸¤·¤Þ¤·¤¿¡£") ; e.printStackTrace() ; } } } ̤½èÍý¤ÎÎã³°¤òÅÁ㤹¤ë
¥á¥½¥Ã¥ÉÆâ¤ËÆÃÄê¤ÎÎã³°¤ËÂФ¹¤ëcatch¶ç¤¬Ìµ¤¤¾ì¹ç¡¢¤½¤Î¥á¥½¥Ã¥É¤ÏÎã³°¤ò¡Ö¤«¤ï¤¹¡×¡£¤¹¤Ê¤ï¤Á¡¢Â¾¤ËÀÕǤž²Ç¤¹¤ë¡£¤«¤ï¤µ¤ì¤¿Îã³°¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥á¥½¥Ã¥É¤Ë¹Ô¤¥³¡¼¥ë¥¹¥¿¥Ã¥¯¤òé¤Ã¤Æ¤¤¤¯¡£main()¥á¥½¥Ã¥É¤Ç¤âÎã³°¤òcatch¤Ç¤¤Ê¤«¤Ã¤¿¾ì¹ç¡¢¥×¥í¥°¥é¥à¤Ï¥¯¥é¥Ã¥·¥å¤·¡¢¥³¡¼¥ë¥¹¥¿¥Ã¥¯¤¬¥À¥ó¥×¤¹¤ë¡£
¥³¡¼¥ë¥¹¥¿¥Ã¥¯¤ÈÎã³°¤ÎÅÁã¤ÎÎã
public class Test{ public static void main(String[] args){ Test t = new Test() ; t.methodA(t) ; } void methodA(Test s){ s.methodB() ; } void methodB(){ System.out.println(10/0) ;//¡ } } ¤³¤Î¥³¡¼¥É¤ò¼Â¹Ô¤¹¤ë¤È¡Ö¥¹¥¿¥Ã¥¯¥È¥ì¡¼¥¹¡×¤¬É½¼¨¤µ¤ì¤ë¡£¡¤Ç¥é¥ó¥¿¥¤¥à¥¨¥é¡¼¤Ë¤Ê¤ê¡¢methodB()¤ÏÎã³°¤ò¤«¤ï¤¹¡£methodA()¤âÎã³°¤ò¤«¤ï¤·¡¢ºÇ¸å¤Ëmain()¥á¥½¥Ã¥É¤Ëé¤ê¤Ä¤¯¡£¤³¤³¤Ç¤âÎã³°¤ò½èÍý¤Ç¤¤Ê¤¤¤Î¤Ç¡¢¥¹¥¿¥Ã¥¯¥È¥ì¡¼¥¹¤¬¥À¥ó¥×¤¹¤ë¡£¼¡¤ÎÎã¤ÏmethodA¤ÇÎã³°¤ò¥¥ã¥Ã¥Á¤¹¤ëÎã¡£
Îã³°¤ò¥¥ã¥Ã¥Á¤¹¤ë¤ÎÎã
public class Test{ public static void main(String[] args){ Test t = new Test() ; try{ t.methodA(t) ; } catch (ArithmeticException e){ System.out.println("0¤Ç½ü»»¤·¤Þ¤·¤¿") ; } } void methodA(Test s){ s.methodB() ; } void methodB(){ System.out.println(10/0) ; } } Îã³°¤òÄêµÁ¤¹¤ë
Á´¤Æ¤ÎÎã³°¤ÏException¥¯¥é¥¹¤ò³ÈÄ¥¤¹¤ë¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¡£Îã³°¤Ï¾ï¤Ëjava.lang.Exception¤Î¥µ¥Ö¥¯¥é¥¹¤Ç¤¢¤ë¡£
Îã³°¤¬Åꤲ¤é¤ì¤ë¤È¡¢Exception¥¯¥é¥¹¤ÎÆÃÄê¤Î¥µ¥Ö¥¯¥é¥¹¤Î¥ª¥Ö¥¸¥§¥¯¥È¤¬¥¤¥ó¥¹¥¿¥ó¥¹²½¤µ¤ì¡¢catch¶ç¤Î°ú¿ô¤È¤·¤ÆÎã³°¥Ï¥ó¥É¥é¤ËÅϤµ¤ì¤ë¡£
µ½Ò¤ÎÎã
catch (ArithmeticException e){ //ArithmeticException¤Î¥á¥½¥Ã¥É¤¬»È¤¨¤ë } Îã³°³¬ÁØ
RuntimeException
Exception¥¯¥é¥¹¤Î¥µ¥Ö¥¯¥é¥¹¡£Æüì¤ÊÎã³°¤Ç¤¢¤ë¡£
printStackTrace()¥á¥½¥Ã¥É
Îã³°¥ª¥Ö¥¸¥§¥¯¥È¤ÎprintStackTrace()¥á¥½¥Ã¥É¤ò¸Æ¤Ó½Ð¤¹¤È¡¢Îã³°¤¬µ¯¤³¤Ã¤¿»þÅÀ¤Ç¤Î¥¹¥¿¥Ã¥¯¥È¥ì¡¼¥¹¤¬½ÐÎϤµ¤ì¤ë¡£¥¹¥¿¥Ã¥¯¥È¥ì¡¼¥¹¤Ï¾å¤Ë¸þ¤«¤¤ºîÀ®¤µ¤ì¤ë¡£ºÇ¤â¿·¤·¤¯¸Æ¤Ó½Ð¤µ¤ì¤¿¥á¥½¥Ã¥É¤¬ºÇ¾åÉô¤Ë¤¯¤ë¡£printStackTrace()¥á¥½¥Ã¥É¤Ï¡¢ºÇ¤â¿·¤·¤¯¸Æ¤Ó½Ð¤µ¤ì¤¿¥á¥½¥Ã¥É¤òÀèƬ¤Ë¡¢¤½¤Î¸å²¼¤Ë¸þ¤«¤Ã¤Æ½ç¤Ë³Æ¥á¥½¥Ã¥É̾¤ò½ÐÎϤ¹¤ë¡£¤³¤ì¤ò¡Ö¥¹¥¿¥Ã¥¯¤Î´¬¤Ìᤷ¡×¤È¤¤¤¦¡£
Îã³°¥¯¥é¥¹¤Ècatch¶ç
catch¶ç¤ÇÎã³°¤òcatch¤¹¤ë¾ì¹ç¡¢Îã³°¥¯¥é¥¹¤òµ½Ò¤¹¤ë¡£µ½Ò¤¹¤ëÎã³°¥¯¥é¥¹¤Ë¥µ¥Ö¥¯¥é¥¹¤¬¤Ê¤¤¾ì¹ç¡¢¤½¤Î¥¯¥é¥¹¤ÎÎã³°¤À¤±¤¬¥¥ã¥Ã¥Á¤µ¤ì¤ë¡£²¾¤Ë¡¢¥µ¥Ö¥¯¥é¥¹¤ò»ý¤ÄÎã³°¥¯¥é¥¹¤òµ½Ò¤·¤¿¾ì¹ç¤Ï¡¢¥µ¥Ö¥¯¥é¥¹¤ÎÎã³°¤â¥¥ã¥Ã¥Á¤Ç¤¤ë¡£
catch¶ç¤Ëµ½Ò¤¹¤ë¥¯¥é¥¹¤¬¤¿¤¯¤µ¤ó¤Î¥µ¥Ö¥¯¥é¥¹¤ò»ý¤Ã¤Æ¤¤¤ë¾ì¹ç¡¢Îã³°¤Î¾ÜºÙ¤¬¤ï¤«¤ê¤Ë¤¯¤¯¤Ê¤ë¤Î¤Ç¥ª¥¹¥¹¥á¤Ç¤¤Ê¤¤¡£Î㤨¤Ð¡¢¡ÖException¡×¥¯¥é¥¹¤ò»ØÄꤷ¤¿¾ì¹ç¡¢Á´¤Æ¤ÎÎã³°¤ò¥¥ã¥Ã¥Á¤·¤Æ¤·¤Þ¤¦¤Î¤Ç¡¢²¿¤ÎÎã³°¤¬µ¯¤¤¿¤Î¤«¤ï¤«¤é¤Ê¤¯¤Ê¤ë¡£
Îã³°¥Þ¥Ã¥Á¥ó¥°
Îã³°¤¬Åꤲ¤é¤ì¤ë¤È¡¢Java¤Ï¤½¤ÎÎã³°¥¯¥é¥¹¤ËÂбþ¤¹¤ëcatch¶ç¤ò¤µ¤¬¤¹¡£¤½¤ÎÎã³°¥¯¥é¥¹ÍѤΥϥó¥É¥é¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï¡¢¤½¤ÎÎã³°¤Î¥¹¡¼¥Ñ¡¼¥¯¥é¥¹ÍѤΥϥó¥É¥é¤ò¤µ¤¬¤¹¡£Îã³°¤Î¥¹¡¼¥Ñ¡¼¥¯¥é¥¹¤ËÂФ¹¤ëcatch¶ç¤¬¸«¤Ä¤«¤é¤Ê¤¤¾ì¹ç¤Ï¡¢¥³¡¼¥ë¥¹¥¿¥Ã¥¯¤Î²¼¤Ë¸þ¤«¤Ã¤ÆÎã³°¤¬ÅÁ㤵¤ì¤ë¡£¤³¤Î¥×¥í¥»¥¹¤òÎã³°¥Þ¥Ã¥Á¥ó¥°¤È¤¤¤¦¡£
catch¶ç¤òÊ£¿ô½ñ¤¯¾ì¹ç¤Ï¡¢Îã³°¤Î¥µ¥Ö¥¯¥é¥¹(ÈϰϤµ¤¤¤â¤Î)¤«¤é½ç¤Ë½ñ¤¯¡£ÈϰϤÎÂ礤¤¤â¤Î¤«¤é½ñ¤¯¤È¡¢¥³¥ó¥Ñ¥¤¥ë¥¨¥é¡¼¤Ë¤Ê¤ë¡£¤Á¤Ê¤ß¤Ë³¬Áؤ¬Æ±¤¸¾ì¹ç¤Ï½ç½ø¤Ë·è¤Þ¤ê¤Ï¤Ê¤¤¡£
Îã³°¥Þ¥Ã¥Á¥ó¥°¤ÎÎã
public class Test{ public static void main(String[] args){ Test t = new Test() ; try{ t.methodA(t) ; } catch (ArithmeticException e){ System.out.println("0¤Ç½ü»»¤·¤Þ¤·¤¿") ; } catch (RuntimeException e){ System.out.println("Îã³°¤¬È¯À¸¤·¤Þ¤·¤¿") ; } catch (Exception e){ System.out.println("Îã³°¤¬È¯À¸¤·¤Þ¤·¤¿") ; } } void methodA(Test s){ s.methodB() ; } void methodB(){ System.out.println(10/0) ; } } ¤³¤Î¥³¡¼¥É¤ÏÀµ¤·¤¤¡£¤â¤·¡¢catch¶ç¤Î½ç½ø¤òµÕ¤Ë¤¹¤ë¤È¥³¥ó¥Ñ¥¤¥ë¤Ç¤¤Ê¤¯¤Ê¤ë¡£
¥á¥½¥Ã¥É¤Ë¤ª¤±¤ëÎã³°¤ÎÀë¸À
¥á¥½¥Ã¥É¤¬Îã³°¤òÅꤲ¤ë²ÄǽÀ¤¬¤¢¤ë¾ì¹ç¤Ï¡¢Îã³°¤òµ½Ò¤·¤Ê¤±¤é¤Ð¤Ê¤é¤Ê¤¤¡£Ã¢¤·¡¢RuntimeExceptionÆâ¤Î¥µ¥Ö¥¯¥é¥¹¤Ï½ñ¤«¤Ê¤¯¤Æ¤â¹½¤ï¤Ê¤¤¡£
(½ñ¼°)Ìá¤êÃͤη¿ ¥á¥½¥Ã¥É̾() throws Îã³°¥¯¥é¥¹Ì¾ , Îã³°¥¯¥é¥¹Ì¾ ... { }
¥á¥½¥Ã¥É¤¬Îã³°¤òÅꤲ¤ë²ÄǽÀ¤¬¤¢¤ë¾ì¹ç¤Ï¡¢Îã³°¤òµ½Ò¤·¸Æ¤Ó½Ð¤·¸µ¤ËÎã³°½èÍý¤ò°Ñ¤Í¤ë¤«¡¢¤½¤Î¾ì¤Çcatch¶ç¤ÇÎã³°¤ò¼õ¤±¼è¤ë¡£¥á¥½¥Ã¥É¤¬Îã³°¤òÅꤲ¤¿¾ì¹ç¡¢É¬¤º¤É¤³¤«¤ÇÎã³°¤ò¥¥ã¥Ã¥Á¤·½èÍý¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£(½èÍý¤«Àë¸À¤«¡¢¥¥ã¥Ã¥Á¤«Àë¸À¤«)
¥á¥½¥Ã¥ÉÆâ¤ÎÎã³°¤ÎÀë¸À¤ÎÎã
import java.io.* ; public class Test{ public static void main(String[] args){ Test t = new Test() ; try{ t.methodA(t) ;//¡ } catch (Exception e){ //e.printStackTrace() ; } } void methodA(Test s) throws Exception{//¢ s.methodB() ; } void methodB() throws Exception{//£ FileReader file = new FileReader("sample.txt") ; } } £¤ÇÎã³°¤òÅꤲ¤ë²ÄǽÀ¤¬¤¢¤ë¤Î¤Ç¡¢¥á¥½¥Ã¥ÉÆâ¤Ëµ½Ò¤·¸Æ¤Ó½Ð¤·¸µ¤Ë½èÍý¤ò¾ù¤ë¡£¸Æ¤Ó½Ð¤·¸µ¤Î¢¤âÎã³°¤òÅꤲ¢¤Î¸Æ¤Ó½Ð¤·¸µ¤Ë½èÍý¤ò°Ñ¤Í¤ë¡£¡¤ÇÎã³°¤ò¥¥ã¥Ã¥Á¤·Îã³°¥Ï¥ó¥É¥é¤Ç½èÍý¤¹¤ë¡£
¥Á¥§¥Ã¥¯Îã³°¤ÈÈó¥Á¥§¥Ã¥¯Îã³°
ÌÀ¼¨Åª¤ËÎã³°¤òÅꤲ¤ëÎã
class Test extends Exception{ public static void main(String[] args){ Test t = new Test() ; try{ t.check() ; } catch (Test e){//¥Á¥§¥Ã¥¯Îã³°¤ò½èÍý¤¹¤ë e.printStackTrace() ; } } void check() throws Test{ throw new Test() ;//¥Á¥§¥Ã¥¯Îã³°¤òÅꤲ¤ë } } catch¶ç¤Ç¹¹¤ËÎã³°¤òÅꤲ¤ëÎã
class Test extends Exception{ public static void main(String[] args){ Test t = new Test() ; try{ t.check(t) ; } catch (Exception e){ System.out.println("Îã³°¤ò¥¥ã¥Ã¥Á¤·¤Þ¤·¤¿") ; e.printStackTrace() ; } } void check(Test s) throws Test{ try{ s.errormethod() ; } catch(Test e){ throw e ;//¥Á¥§¥Ã¥¯Îã³°¤òÅꤲ¤ë } } void errormethod() throws Test{ throw new Test() ;//¥Á¥§¥Ã¥¯Îã³°¤òÅꤲ¤ë } } |
Copyright 2007 ¤¿¤á¤Ë¤Ê¤ë¥Û¡¼¥à¥Ú¡¼¥¸ All Rights Reserved. |