ÔÚ³ÌÐòÉè¼ÆÖУ¬½øÐÐÒì³£´¦ÀíÊǷdz£¹Ø¼üºÍÖØÒªµÄÒ»²¿·Ö¡£Ò»¸ö³ÌÐòµÄÒì³£´¦Àí¿ò¼ÜµÄºÃ»µÖ±½ÓÓ°Ïìµ½Õû¸öÏîÄ¿µÄ´úÂëÖÊÁ¿ÒÔ¼°ºóÆÚά»¤³É±¾ºÍÄѶȡ£ÊÔÏëһϣ¬Èç¹ûÒ»¸öÏîÄ¿´ÓÍ·µ½Î²Ã»Óп¼ÂǹýÒì³£´¦Àí£¬µ±³ÌÐò³ö´í´ÓÄÄÀïѰÕÒ³ö´íµÄ¸ùÔ´£¿µ«ÊÇÈç¹ûÒ»¸öÏîÄ¿Òì³£´¦ÀíÉè¼ÆµØ¹ý¶à£¬ÓÖ»áÑÏÖØÓ°Ïìµ½´úÂëÖÊÁ¿ÒÔ¼°³ÌÐòµÄÐÔÄÜ¡£Òò´Ë£¬ÈçºÎ¸ßЧ¼ò½àµØÉè¼ÆÒì³£´¦ÀíÊÇÒ»ÃÅÒÕÊõ£¬±¾ÎÄÏÂÃæÏȽ²ÊöJavaÒì³£»úÖÆ×î»ù´¡µÄ֪ʶ£¬È»ºó¸ø³öÔÚ½øÐÐJavaÒì³£´¦ÀíÉè¼ÆÊ±µÄ¼¸¸ö½¨Òé¡£
ÈôÓв»ÕýÖ®´¦£¬Çë¶à¶àÁ½âºÍÖ¸Õý£¬²»Ê¤¸Ð¼¤¡£
ÒÔÏÂÊDZ¾ÎĵÄĿ¼´ó¸Ù£º
Ò».ʲôÊÇÒì³£
¶þ.JavaÖÐÈçºÎ´¦ÀíÒì³£
Èý.Éî¿ÌÀí½âtry,catch,finally,throws,throwÎå¸ö¹Ø¼ü×Ö
ËÄ.ÔÚÀà¼Ì³ÐµÄʱºò£¬·½·¨¸²¸ÇʱÈçºÎ½øÐÐÒì³£Å׳öÉùÃ÷
Îå.Òì³£´¦ÀíºÍÉè¼ÆµÄ¼¸¸ö½¨Òé
Ò».ʲôÊÇÒì³£
Òì³£µÄÓ¢Îĵ¥´ÊÊÇexception£¬×ÖÃæ·Òë¾ÍÊÇ¡°ÒâÍâ¡¢ÀýÍ⡱µÄÒâ˼£¬Ò²¾ÍÊÇ·ÇÕý³£Çé¿ö¡£ÊÂʵÉÏ£¬Òì³£±¾ÖÊÉÏÊdzÌÐòÉϵĴíÎ󣬰üÀ¨³ÌÐòÂß¼´íÎóºÍϵͳ´íÎó¡£±ÈÈçʹÓÿյÄÒýÓá¢Êý×éϱêÔ½½ç¡¢ÄÚ´æÒç³ö´íÎóµÈ£¬ÕâЩ¶¼ÊÇÒâÍâµÄÇé¿ö£¬±³ÀëÎÒÃdzÌÐò±¾ÉíµÄÒâͼ¡£´íÎóÔÚÎÒÃDZàд³ÌÐòµÄ¹ý³ÌÖлᾳ£·¢Éú£¬°üÀ¨±àÒëÆÚ¼äºÍÔËÐÐÆÚ¼äµÄ´íÎó£¬ÔÚ±àÒëÆÚ¼ä³öÏֵĴíÎóÓбàÒëÆ÷°ïÖúÎÒÃÇÒ»ÆðÐÞÕý£¬È»¶øÔËÐÐÆÚ¼äµÄ´íÎó±ã²»ÊDZàÒëÆ÷Á¦ËùÄܼ°ÁË£¬²¢ÇÒÔËÐÐÆÚ¼äµÄ´íÎóÍùÍùÊÇÄÑÒÔÔ¤Áϵġ£¼ÙÈô³ÌÐòÔÚÔËÐÐÆÚ¼ä³öÏÖÁË´íÎó£¬Èç¹ûÖÃÖ®²»Àí£¬³ÌÐò±ã»áÖÕÖ¹»òÖ±½Óµ¼ÖÂϵͳ±ÀÀ££¬ÏÔÈ»Õâ²»ÊÇÎÒÃÇÏ£Íû¿´µ½µÄ½á¹û¡£Òò´Ë£¬ÈçºÎ¶ÔÔËÐÐÆÚ¼ä³öÏֵĴíÎó½øÐд¦ÀíºÍ²¹¾ÈÄØ£¿JavaÌṩÁËÒì³£»úÖÆÀ´½øÐд¦Àí£¬Í¨¹ýÒì³£»úÖÆÀ´´¦Àí³ÌÐòÔËÐÐÆÚ¼ä³öÏֵĴíÎó¡£Í¨¹ýÒì³£»úÖÆ£¬ÎÒÃÇ¿ÉÒÔ¸üºÃµØÌáÉý³ÌÐòµÄ½¡×³ÐÔ¡£
ÔÚJavaÖÐÒì³£±»µ±×ö¶ÔÏóÀ´´¦Àí£¬¸ùÀàÊÇjava.lang.ThrowableÀ࣬ÔÚJavaÖж¨ÒåÁ˺ܶàÒì³£ÀࣨÈçOutOfMemoryError¡¢NullPointerException¡¢IndexOutOfBoundsExceptionµÈ£©£¬ÕâЩÒì³£Àà·ÖΪÁ½´óÀࣺErrorºÍException¡£
ErrorÊÇÎÞ·¨´¦ÀíµÄÒì³££¬±ÈÈçOutOfMemoryError£¬Ò»°ã·¢ÉúÕâÖÖÒì³££¬JVM»áÑ¡ÔñÖÕÖ¹³ÌÐò¡£Òò´ËÎÒÃDZàд³ÌÐòʱ²»ÐèÒª¹ØÐÄÕâÀàÒì³£¡£
Exception£¬Ò²¾ÍÊÇÎÒÃǾ³£¼ûµ½µÄһЩÒì³£Çé¿ö£¬±ÈÈçNullPointerException¡¢IndexOutOfBoundsException£¬ÕâЩÒì³£ÊÇÎÒÃÇ¿ÉÒÔ´¦ÀíµÄÒì³£¡£
ExceptionÀàµÄÒì³£°üÀ¨checked exceptionºÍunchecked exception£¨unchecked exceptionÒ²³ÆÔËÐÐʱÒì³£RuntimeException£¬µ±È»ÕâÀïµÄÔËÐÐʱÒì³£²¢²»ÊÇÇ°ÃæÎÒËù˵µÄÔËÐÐÆÚ¼äµÄÒì³££¬Ö»ÊÇJavaÖÐÓÃÔËÐÐʱÒì³£Õâ¸öÊõÓïÀ´±íʾ£¬ExceptionÀàµÄÒì³£¶¼ÊÇÔÚÔËÐÐÆÚ¼ä·¢ÉúµÄ£©¡£
unchecked exception£¨·Ç¼ì²éÒì³££©£¬Ò²³ÆÔËÐÐʱÒì³££¨RuntimeException£©£¬±ÈÈç³£¼ûµÄNullPointerException¡¢IndexOutOfBoundsException¡£¶ÔÓÚÔËÐÐʱÒì³££¬java±àÒëÆ÷²»ÒªÇó±ØÐë½øÐÐÒì³£²¶»ñ´¦Àí»òÕßÅ׳öÉùÃ÷£¬ÓɳÌÐòÔ±×ÔÐоö¶¨¡£
checked exception£¨¼ì²éÒì³££©£¬Ò²³Æ·ÇÔËÐÐʱÒì³££¨ÔËÐÐʱÒì³£ÒÔÍâµÄÒì³£¾ÍÊÇ·ÇÔËÐÐʱÒì³££©£¬java±àÒëÆ÷Ç¿ÖÆ³ÌÐòÔ±±ØÐë½øÐв¶»ñ´¦Àí£¬±ÈÈç³£¼ûµÄIOExeptionºÍSQLException¡£¶ÔÓÚ·ÇÔËÐÐʱÒì³£Èç¹û²»½øÐв¶»ñ»òÕßÅ׳öÉùÃ÷´¦Àí£¬±àÒë¶¼²»»áͨ¹ý¡£
ÔÚJavaÖУ¬Òì³£ÀàµÄ½á¹¹²ã´ÎͼÈçÏÂͼËùʾ£º

ÔÚJavaÖУ¬ËùÓÐÒì³£ÀàµÄ¸¸ÀàÊÇThrowableÀ࣬ErrorÀàÊÇerrorÀàÐÍÒì³£µÄ¸¸À࣬ExceptionÀàÊÇexceptionÀàÐÍÒì³£µÄ¸¸À࣬RuntimeExceptionÀàÊÇËùÓÐÔËÐÐʱÒì³£µÄ¸¸À࣬RuntimeExceptionÒÔÍâµÄ²¢ÇҼ̳ÐExceptionµÄÀàÊÇ·ÇÔËÐÐʱÒì³£¡£
µäÐ͵ÄRuntimeException°üÀ¨NullPointerException¡¢IndexOutOfBoundsException¡¢IllegalArgumentExceptionµÈ¡£
µäÐ͵ķÇRuntimeException°üÀ¨IOException¡¢SQLExceptionµÈ¡£
¶þ.JavaÖÐÈçºÎ´¦ÀíÒì³£
ÔÚJavaÖÐÈç¹ûÐèÒª´¦ÀíÒì³££¬±ØÐëÏȶÔÒì³£½øÐв¶»ñ£¬È»ºóÔÙ¶ÔÒì³£Çé¿ö½øÐд¦Àí¡£ÈçºÎ¶Ô¿ÉÄÜ·¢ÉúÒì³£µÄ´úÂë½øÐÐÒì³£²¶»ñºÍ´¦ÀíÄØ£¿Ê¹ÓÃtryºÍcatch¹Ø¼ü×Ö¼´¿É£¬ÈçÏÂÃæÒ»¶Î´úÂëËùʾ£º
try {
File file = new File("d:/a.txt");
if(!file.exists())
file.createNewFile();
} catch (IOException e) {
// TODO: handle exception } |
±»try¿é°üΧµÄ´úÂë˵Ã÷Õâ¶Î´úÂë¿ÉÄܻᷢÉúÒì³££¬Ò»µ©·¢ÉúÒì³££¬Òì³£±ã»á±»catch²¶»ñµ½£¬È»ºóÐèÒªÔÚcatch¿éÖнøÐÐÒì³£´¦Àí¡£
ÕâÊÇÒ»ÖÖ´¦ÀíÒì³£µÄ·½Ê½¡£ÔÚJavaÖл¹ÌṩÁËÁíÒ»ÖÖÒì³£´¦Àí·½Ê½¼´Å׳öÒì³££¬¹ËÃû˼Ò壬Ҳ¾ÍÊÇ˵һµ©·¢ÉúÒì³££¬ÎÒ°ÑÕâ¸öÒì³£Å׳öÈ¥£¬Èõ÷ÓÃÕßÈ¥½øÐд¦Àí£¬×Ô¼º²»½øÐоßÌåµÄ´¦Àí£¬´ËʱÐèÒªÓõ½throwºÍthrows¹Ø¼ü×Ö¡£¡¡
ÏÂÃæ¿´Ò»¸öʾÀý£º
public class Main {
public static void main(String[] args) {
try {
createFile();
} catch (Exception e) {
// TODO: handle exception
}
}
public static void createFile() throws IOException{
File file = new File("d:/a.txt");
if(!file.exists())
file.createNewFile();
}
} |
Õâ¶Î´úÂëºÍÉÏÃæÒ»¶Î´úÂëµÄÇø±ðÊÇ£¬ÔÚʵ¼ÊµÄcreateFile·½·¨Öв¢Ã»Óв¶»ñÒì³££¬¶øÊÇÓÃthrows¹Ø¼ü×ÖÉùÃ÷Å׳öÒì³££¬¼´¸æÖªÕâ¸ö·½·¨µÄµ÷ÓÃÕß´Ë·½·¨¿ÉÄÜ»áÅ׳öIOException¡£ÄÇôÔÚmain·½·¨Öе÷ÓÃcreateFile·½·¨µÄʱºò£¬²ÉÓÃtry...catch¿é½øÐÐÁËÒì³£²¶»ñ´¦Àí¡£
µ±È»»¹¿ÉÒÔ²ÉÓÃthrow¹Ø¼ü×ÖÊÖ¶¯À´Å׳öÒì³£¶ÔÏó¡£ÏÂÃæ¿´Ò»¸öÀý×Ó£º
public class Main { public static void main(String[] args) { try { int[] data = new int[]{1,2,3}; System.out.println(getDataByIndex(-1,data)); } catch (Exception e) { System.out.println(e.getMessage()); } }
public static int getDataByIndex(int index,int[] data) {
if(index<0||index>=data.length)
throw new ArrayIndexOutOfBoundsException("Êý×éϱêÔ½½ç");
return data[index];
}
} |
È»ºóÔÚcatch¿éÖнøÐв¶»ñ¡£
Ò²¾Í˵ÔÚJavaÖнøÐÐÒì³£´¦ÀíµÄ»°£¬¶ÔÓÚ¿ÉÄܻᷢÉúÒì³£µÄ´úÂ룬¿ÉÒÔÑ¡ÔñÈýÖÖ·½·¨À´½øÐÐÒì³£´¦Àí£º
1£©¶Ô´úÂë¿éÓÃtry..catch½øÐÐÒì³£²¶»ñ´¦Àí£»
2£©ÔÚ ¸Ã´úÂëµÄ·½·¨ÌåÍâÓÃthrows½øÐÐÅ׳öÉùÃ÷£¬¸æÖª´Ë·½·¨µÄµ÷ÓÃÕßÕâ¶Î´úÂë¿ÉÄÜ»á³öÏÖÕâЩÒì³££¬ÄãÐèÒª½÷É÷´¦Àí¡£´ËʱÓÐÁ½ÖÖÇé¿ö£º
Èç¹ûÉùÃ÷Å׳öµÄÒì³£ÊÇ·ÇÔËÐÐʱÒì³££¬´Ë·½·¨µÄµ÷ÓÃÕß±ØÐëÏÔʾµØÓÃtry..catch¿é½øÐв¶»ñ»òÕß¼ÌÐøÏòÉϲãÅ׳öÒì³£¡£
Èç¹ûÉùÃ÷Å׳öµÄÒì³£ÊÇÔËÐÐʱÒì³££¬´Ë·½·¨µÄµ÷ÓÃÕß¿ÉÒÔÑ¡ÔñµØ½øÐÐÒì³£²¶»ñ´¦Àí¡£
3£©ÔÚ´úÂë¿éÓÃthrowÊÖ¶¯Å׳öÒ»¸öÒì³£¶ÔÏ󣬴ËʱҲÓÐÁ½ÖÖÇé¿ö£¬¸ú2£©ÖеÄÀàËÆ£º
Èç¹ûÅ׳öµÄÒì³£¶ÔÏóÊÇ·ÇÔËÐÐʱÒì³££¬´Ë·½·¨µÄµ÷ÓÃÕß±ØÐëÏÔʾµØÓÃtry..catch¿é½øÐв¶»ñ»òÕß¼ÌÐøÏòÉϲãÅ׳öÒì³£¡£
Èç¹ûÅ׳öµÄÒì³£¶ÔÏóÊÇÔËÐÐʱÒì³££¬´Ë·½·¨µÄµ÷ÓÃÕß¿ÉÒÔÑ¡ÔñµØ½øÐÐÒì³£²¶»ñ´¦Àí¡£
£¨Èç¹û×îÖÕ½«Òì³£Å׸ømain·½·¨£¬ÔòÏ൱ÓÚ½»¸øjvm×Ô¶¯´¦Àí£¬´Ëʱjvm»á¼òµ¥µØ´òÓ¡Òì³£ÐÅÏ¢£©
Èý.Éî¿ÌÀí½âtry,catch,finally,throws,throwÎå¸ö¹Ø¼ü×Ö
ÏÂÃæÎÒÃÇÀ´¿´Ò»ÏÂÒì³£»úÖÆÖÐÎå¸ö¹Ø¼ü×ÖµÄÓ÷¨ÒÔ¼°ÐèҪעÒâµÄµØ·½¡£
1.try,catch,finally
try¹Ø¼ü×ÖÓÃÀ´°üΧ¿ÉÄÜ»á³öÏÖÒì³£µÄÂß¼´úÂ룬Ëüµ¥¶ÀÎÞ·¨Ê¹Ó㬱ØÐëÅäºÏcatch»òÕßfinallyʹÓá£Java±àÒëÆ÷ÔÊÐíµÄ×éºÏʹÓÃÐÎʽֻÓÐÒÔÏÂÈýÖÖÐÎʽ£º
try...catch...; try....finally......; try....catch...finally...
µ±È»catch¿é¿ÉÒÔÓжà¸ö£¬×¢Òâtry¿éÖ»ÄÜÓÐÒ»¸ö,finally¿éÊÇ¿ÉÑ¡µÄ£¨µ«ÊÇ×î¶àÖ»ÄÜÓÐÒ»¸öfinally¿é£©¡£
Èý¸ö¿éÖ´ÐеÄ˳ÐòΪtry¡ª>catch¡ª>finally¡£
µ±È»Èç¹ûûÓз¢ÉúÒì³££¬Ôòcatch¿é²»»áÖ´ÐС£µ«ÊÇfinally¿éÎÞÂÛÔÚʲôÇé¿ö϶¼ÊÇ»áÖ´Ðеģ¨ÕâµãÒª·Ç³£×¢Ò⣬Òò´Ë²¿·ÖÇé¿öÏ£¬¶¼»á½«ÊÍ·Å×ÊÔ´µÄ²Ù×÷·ÅÔÚfinally¿éÖнøÐУ©¡£
ÔÚÓжà¸öcatch¿éµÄʱºò£¬Êǰ´ÕÕcatch¿éµÄÏȺó˳Ðò½øÐÐÆ¥ÅäµÄ£¬Ò»µ©Òì³£ÀàÐͱ»Ò»¸öcatch¿éÆ¥Å䣬Ôò²»»áÓëºóÃæµÄcatch¿é½øÐÐÆ¥Åä¡£
ÔÚʹÓÃtry..catch..finally¿éµÄʱºò£¬×¢ÒâǧÍò²»ÒªÔÚfinally¿éÖÐʹÓÃreturn£¬ÒòΪfinallyÖеÄreturn»á¸²¸ÇÒÑÓеķµ»ØÖµ¡£ÏÂÃæ¿´Ò»¸öÀý×Ó£º
import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException;
public class Main { public static void main(String[] args) { String str = new Main().openFile(); System.out.println(str);
}
public String openFile() { try { FileInputStream inputStream = new FileInputStream("d:/a.txt"); int ch = inputStream.read(); System.out.println("aaa"); return "step1"; } catch (FileNotFoundException e) { System.out.println("file not found"); return "step2"; }catch (IOException e) { System.out.println("io exception"); return "step3"; }finally{ System.out.println("finally block"); //return "finally"; } } } |
Õâ¶Î³ÌÐòµÄÊä³ö½á¹ûΪ£º

¿ÉÒÔ¿´³ö£¬ÔÚtry¿éÖз¢ÉúFileNotFoundExceptionÖ®ºó£¬¾ÍÌøµ½µÚÒ»¸öcatch¿é£¬´òÓ¡"file not found"ÐÅÏ¢£¬²¢½«"step2"¸³Öµ¸ø·µ»ØÖµ£¬È»ºóÖ´ÐÐfinally¿é£¬×îºó½«·µ»ØÖµ·µ»Ø¡£
´ÓÕâ¸öÀý×Ó˵Ã÷£¬ÎÞÂÛtry¿é»òÕßcatch¿éÖÐÊÇ·ñ°üº¬returnÓï¾ä£¬¶¼»áÖ´ÐÐfinally¿é¡£
Èç¹û½«Õâ¸ö³ÌÐòÉÔ΢ÐÞ¸Äһϣ¬½«finally¿éÖеÄreturnÓï¾ä×¢ÊÍÈ¥µô£¬ÔËÐнá¹ûÊÇ£º

×îºó´òÓ¡³öµÄÊÇ"finally"£¬·µ»ØÖµ±»ÖØÐ¸²¸ÇÁË¡£
Òò´ËÈç¹û·½·¨Óзµ»ØÖµ£¬Çмɲ»ÒªÔÙfinallyÖÐʹÓÃreturn£¬ÕâÑù»áʹµÃ³ÌÐò½á¹¹±äµÃ»ìÂÒ¡£
2.throwsºÍthow¹Ø¼ü×Ö
1£©throws³öÏÖÔÚ·½·¨µÄÉùÃ÷ÖУ¬±íʾ¸Ã·½·¨¿ÉÄÜ»áÅ׳öµÄÒì³££¬È»ºó½»¸øÉϲãµ÷ÓÃËüµÄ·½·¨³ÌÐò´¦Àí£¬ÔÊÐíthrowsºóÃæ¸ú×Ŷà¸öÒì³£ÀàÐÍ£»
2£©Ò»°ã»áÓÃÓÚ³ÌÐò³öÏÖijÖÖÂ߼ʱ³ÌÐòÔ±Ö÷¶¯Å׳öijÖÖÌØ¶¨ÀàÐ͵ÄÒì³£¡£throwÖ»»á³öÏÖÔÚ·½·¨ÌåÖУ¬µ±·½·¨ÔÚÖ´Ðйý³ÌÖÐÓöµ½Òì³£Çé¿öʱ£¬½«Òì³£ÐÅÏ¢·âװΪÒì³£¶ÔÏó£¬È»ºóthrow³öÈ¥¡£throw¹Ø¼ü×ÖµÄÒ»¸ö·Ç³£ÖØÒªµÄ×÷ÓþÍÊÇ Òì³£ÀàÐ͵Äת»»£¨»áÔÚºóÃæ²ûÊöµÀ£©¡£
throws±íʾ³öÏÖÒì³£µÄÒ»ÖÖ¿ÉÄÜÐÔ£¬²¢²»Ò»¶¨»á·¢ÉúÕâЩÒì³££»throwÔòÊÇÅ׳öÁËÒì³££¬Ö´ÐÐthrowÔòÒ»¶¨Å׳öÁËijÖÖÒì³£¶ÔÏó¡£Á½Õß¶¼ÊÇÏû¼«´¦ÀíÒì³£µÄ·½Ê½£¨ÕâÀïµÄÏû¼«²¢²»ÊÇ˵ÕâÖÖ·½Ê½²»ºÃ£©£¬Ö»ÊÇÅ׳ö»òÕß¿ÉÄÜÅ׳öÒì³££¬µ«ÊDz»»áÓÉ·½·¨È¥´¦ÀíÒì³££¬ÕæÕýµÄ´¦ÀíÒì³£ÓÉ´Ë·½·¨µÄÉϲãµ÷Óô¦Àí¡£
ËÄ.ÔÚÀà¼Ì³ÐµÄʱºò£¬·½·¨¸²¸ÇʱÈçºÎ½øÐÐÒì³£Å׳öÉùÃ÷
±¾Ð¡½ÚÌÖÂÛ×ÓÀàÖØÐ´¸¸Àà·½·¨µÄʱºò£¬ÈçºÎÈ·¶¨Òì³£Å׳öÉùÃ÷µÄÀàÐÍ¡£ÏÂÃæÊÇÈýµãÔÔò£º
1£©¸¸ÀàµÄ·½·¨Ã»ÓÐÉùÃ÷Òì³££¬×ÓÀàÔÚÖØÐ´¸Ã·½·¨µÄʱºò²»ÄÜÉùÃ÷Òì³££»
2£©Èç¹û¸¸ÀàµÄ·½·¨ÉùÃ÷Ò»¸öÒì³£exception1£¬Ôò×ÓÀàÔÚÖØÐ´¸Ã·½·¨µÄʱºòÉùÃ÷µÄÒì³£²»ÄÜÊÇexception1µÄ¸¸Àࣻ
3£©Èç¹û¸¸ÀàµÄ·½·¨ÉùÃ÷µÄÒì³£ÀàÐÍÖ»ÓзÇÔËÐÐʱÒì³££¨ÔËÐÐʱÒì³££©£¬Ôò×ÓÀàÔÚÖØÐ´¸Ã·½·¨µÄʱºòÉùÃ÷µÄÒì³£Ò²Ö»ÄÜÓзÇÔËÐÐʱÒì³££¨ÔËÐÐʱÒì³££©£¬²»Äܺ¬ÓÐÔËÐÐʱÒì³££¨·ÇÔËÐÐʱÒì³££©¡£

Îå.Òì³£´¦ÀíºÍÉè¼ÆµÄ¼¸¸ö½¨Òé
ÒÔÏÂÊǸù¾ÝǰÈË×ܽáµÄһЩÒì³£´¦ÀíµÄ½¨Ò飺
1.Ö»ÔÚ±ØÒªÊ¹ÓÃÒì³£µÄµØ·½²ÅʹÓÃÒì³££¬²»ÒªÓÃÒ쳣ȥ¿ØÖƳÌÐòµÄÁ÷³Ì
½÷É÷µØÊ¹ÓÃÒì³££¬Òì³£²¶»ñµÄ´ú¼Û·Ç³£¸ß°º£¬Ò쳣ʹÓùý¶à»áÑÏÖØÓ°Ïì³ÌÐòµÄÐÔÄÜ¡£Èç¹ûÔÚ³ÌÐòÖÐÄܹ»ÓÃifÓï¾äºÍBoolean±äÁ¿À´½øÐÐÂß¼Åжϣ¬ÄÇô¾¡Á¿¼õÉÙÒì³£µÄʹÓ㬴Ӷø±ÜÃâ²»±ØÒªµÄÒì³£²¶»ñºÍ´¦Àí¡£±ÈÈçÏÂÃæÕâ¶Î¾µäµÄ³ÌÐò£º
public void useExceptionsForFlowControl() {
try {
while (true) {
increaseCount();
}
} catch (MaximumCountReachedException ex) {
}
//Continue execution
}
public void increaseCount() throws MaximumCountReachedException { if (count >= 5000) throw new MaximumCountReachedException(); } |
ÉϱߵÄuseExceptionsForFlowControl()ÓÃÒ»¸öÎÞÏÞÑ»·À´Ôö¼ÓcountÖ±µ½Å׳öÒì³££¬ÕâÖÖ×ö·¨²¢Ã»ÓÐ˵ÈôúÂë²»Ò×¶Á£¬¶øÊÇʹµÃ³ÌÐòÖ´ÐÐЧÂʽµµÍ¡£
2.ÇмÉʹÓÿÕcatch¿é
ÔÚ²¶»ñÁËÒì³£Ö®ºóʲô¶¼²»×ö£¬Ï൱ÓÚºöÂÔÁËÕâ¸öÒì³£¡£Ç§Íò²»ÒªÊ¹ÓÿյÄcatch¿é£¬¿ÕµÄcatch¿éÒâζ×ÅÄãÔÚ³ÌÐòÖÐÒþ²ØÁË´íÎóºÍÒì³££¬²¢ÇҺܿÉÄܵ¼Ö³ÌÐò³öÏÖ²»¿É¿ØµÄÖ´Ðнá¹û¡£Èç¹ûÄã·Ç³£¿Ï¶¨²¶»ñµ½µÄÒì³£²»»áÒÔÈκη½Ê½¶Ô³ÌÐòÔì³ÉÓ°Ï죬×îºÃÓÃLogÈÕÖ¾½«¸ÃÒì³£½øÐмǼ£¬ÒÔ±ãÈÕºó·½±ã¸üкÍά»¤¡£
3.¼ì²éÒì³£ºÍ·Ç¼ì²éÒì³£µÄÑ¡Ôñ
Ò»µ©Äã¾ö¶¨Å׳öÒì³££¬Äã¾ÍÒª¾ö¶¨Å׳öʲôÒì³£¡£ÕâÀïÃæµÄÖ÷ÒªÎÊÌâ¾ÍÊÇÅ׳ö¼ì²éÒì³£»¹ÊǷǼì²éÒì³£¡£
¼ì²éÒì³£µ¼ÖÂÁËÌ«¶àµÄtry¡catch´úÂ룬¿ÉÄÜÓкܶà¼ì²éÒì³£¶Ô¿ª·¢ÈËÔ±À´ËµÊÇÎÞ·¨ºÏÀíµØ½øÐд¦ÀíµÄ£¬±ÈÈçSQLException£¬¶ø¿ª·¢ÈËԱȴ²»µÃ²»È¥½øÐÐtry¡catch£¬ÕâÑù¾Í»áµ¼Ö¾³£³öÏÖÕâÑùÒ»ÖÖÇé¿ö£ºÂß¼´úÂëÖ»ÓкÜÉٵļ¸ÐУ¬¶ø½øÐÐÒì³£²¶»ñºÍ´¦ÀíµÄ´úÂëÈ´ÓкܶàÐС£ÕâÑù²»½öµ¼ÖÂÂß¼´úÂëÔĶÁÆðÀ´»ÞɬÄѶ®£¬¶øÇÒ½µµÍÁ˳ÌÐòµÄÐÔÄÜ¡£
ÎÒ¸öÈ˽¨Ò龡Á¿±ÜÃâ¼ì²éÒì³£µÄʹÓã¬Èç¹ûȷʵ¸ÃÒì³£Çé¿öµÄ³öÏÖºÜÆÕ±é£¬ÐèÒªÌáÐѵ÷ÓÃÕß×¢Òâ´¦ÀíµÄ»°£¬¾ÍʹÓüì²éÒì³££»·ñÔòʹÓ÷Ǽì²éÒì³£¡£
Òò´Ë£¬ÔÚÒ»°ãÇé¿öÏ£¬ÎÒ¾õµÃ¾¡Á¿½«¼ì²éÒ쳣ת±äΪ·Ç¼ì²éÒì³£½»¸øÉϲ㴦Àí¡£
4.×¢Òâcatch¿éµÄ˳Ðò
²»Òª°ÑÉϲãÀàµÄÒì³£·ÅÔÚ×îÇ°ÃæµÄcatch¿é¡£±ÈÈçÏÂÃæÕâ¶Î´úÂ룺
try {
FileInputStream inputStream = new FileInputStream("d:/a.txt");
int ch = inputStream.read();
System.out.println("aaa");
return "step1";
} catch (IOException e) {
System.out.println( "io exception");
return "step2";
}catch (FileNotFoundException e) {
System.out.println("file not found");
return "step3";
}finally{
System.out.println("finally block");
//return "finally";
} |
µÚ¶þ¸öcatchµÄFileNotFoundException½«ÓÀÔ¶²»»á±»²¶»ñµ½£¬ÒòΪFileNotFoundExceptionÊÇIOExceptionµÄ×ÓÀà¡£
5.²»Òª½«Ìṩ¸øÓû§¿´µÄÐÅÏ¢·ÅÔÚÒì³£ÐÅÏ¢Àï
±ÈÈçÏÂÃæÕâ¶Î´úÂ룺
public class Main {
public static void main(String[] args) {
try {
String user = null;
String pwd = null;
login(user,pwd);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
public static void login(String user,String pwd) {
if(user==null||pwd==null)
throw new NullPointerException("Óû§Ãû»òÕßÃÜÂëΪ¿Õ");
//...
}
} |
չʾ¸øÓû§´íÎóÌáʾÐÅÏ¢×îºÃ²»Òª¸ú³ÌÐò»ìÏýÒ»Æð£¬±È½ÏºÃµÄ·½Ê½Êǽ«ËùÓдíÎóÌáʾÐÅÏ¢·ÅÔÚÒ»¸öÅäÖÃÎļþÖÐͳһ¹ÜÀí¡£
6.±ÜÃâ¶à´ÎÔÚÈÕÖ¾ÐÅÏ¢ÖмǼͬһ¸öÒì³£
Ö»ÔÚÒì³£×ʼ·¢ÉúµÄµØ·½½øÐÐÈÕÖ¾ÐÅÏ¢¼Ç¼¡£ºÜ¶àÇé¿öÏÂÒì³£¶¼ÊDzã²ãÏòÉÏÅܳöµÄ£¬Èç¹ûÔÚÿ´ÎÏòÉÏÅ׳öµÄʱºò£¬¶¼Logµ½ÈÕ־ϵͳÖУ¬Ôò»áµ¼ÖÂÎÞ´Ó²éÕÒÒì³£·¢ÉúµÄ¸ùÔ´¡£
7. Òì³£´¦Àí¾¡Á¿·ÅÔÚ¸ß²ã½øÐÐ
¾¡Á¿½«Ò쳣ͳһÅ׸øÉϲãµ÷ÓÃÕߣ¬ÓÉÉϲãµ÷ÓÃÕßͳһ֮ʱÈçºÎ½øÐд¦Àí¡£Èç¹ûÔÚÿ¸ö³öÏÖÒì³£µÄµØ·½¶¼Ö±½Ó½øÐд¦Àí£¬»áµ¼Ö³ÌÐòÒì³£´¦ÀíÁ÷³Ì»ìÂÒ£¬²»ÀûÓÚºóÆÚά»¤ºÍÒì³£´íÎóÅŲ顣ÓÉÉϲãͳһ½øÐд¦Àí»áʹµÃÕû¸ö³ÌÐòµÄÁ÷³ÌÇåÎúÒ×¶®¡£
8. ÔÚfinallyÖÐÊÍ·Å×ÊÔ´
Èç¹ûÓÐʹÓÃÎļþ¶ÁÈ¡¡¢ÍøÂç²Ù×÷ÒÔ¼°Êý¾Ý¿â²Ù×÷µÈ£¬¼ÇµÃÔÚfinallyÖÐÊÍ·Å×ÊÔ´¡£ÕâÑù²»½ö»áʹµÃ³ÌÐòÕ¼ÓøüÉÙµÄ×ÊÔ´£¬Ò²»á±ÜÃâ²»±ØÒªµÄÓÉÓÚ×ÊԴδÊͷŶø·¢ÉúµÄÒì³£Çé¿ö¡£ |