Java编程中异常处理的特殊情况

文章作者 100test 发表时间 2007:05:02 15:21:12
来源 100Test.Com百考试题网


1、不能在finally块中执行return,continue等语句,否则会把异常“吃掉”;
2、在try,catch中如果有return语句,则在执行return之前先执行finally块

请大家看下面的例子:

  1. public class TryTest {
  2. public static void main(String[] args) {
  3. try {
  4. System.out.println(TryTest.test()).// 返回结果为true其没有任何异常
  5. } catch (Exception e) {
  6. System.out.println("Exception from main").
  7. e.printStackTrace().
  8. }
  9. doThings(0).
  10. }
  11. public static boolean test() throws Exception {
  12. try {
  13. throw new Exception("Something error").// 第1步.抛出异常
  14. } catch (Exception e) {// 第2步.捕获的异常匹配(声明类或其父类),进入控制块
  15. System.out.println("Exception from e").// 第3步.打印
  16. return false.// 第5步. return前控制转移到finally块,执行完后再返回(这一步被吃掉了,不执行)
  17. } finally {
  18. return true. // 第4步. 控制转移,直接返回,吃掉了异常
  19. }
  20. }
  21. public static void doThings(int i)
  22. {
  23. try
  24. {
  25. if(i==0)
  26. {
  27. //在执行return之前会先执行finally
  28. return.
  29. }
  30. int t=100/i.
  31. System.out.println(t).
  32. }catch(Exception ex)
  33. {
  34. ex.printStackTrace().
  35. }
  36. finally
  37. {
  38. System.out.println("finally").
  39. }
  40. }
  41. }


相关文章


解开AJAX技术生命中的达芬奇密码
JTextArea中显示LineNumber
Java编程中怎样实现中文排序
Java编程中异常处理的特殊情况
spring2.0的事务自动处理
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛