您的位置:首页 > 编程语言 > Java开发

Java程序异常处理的特殊情况

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

  请大家仔细看下面的例子:

以下是引用片段:
public class TryTest { 
    public static void main(String[] args) { 
        try { 
            System.out.println(TryTest.test());// 返回结果为true其没有任何异常 
        } catch (Exception e) { 
            System.out.println("Exception from main"); 
            e.printStackTrace(); 
        } 
        doThings(0); 
    } 
 
    public static boolean test() throws Exception { 
        try { 
            throw new Exception("Something error");// 第1步.抛出异常 
        } catch (Exception e) {// 第2步.捕获的异常匹配(声明类或其父类),进入控制块 
            System.out.println("Exception from e");// 第3步.打印 
            return false;// 第5步. return前控制转移到finally块,执行完后再返回(这一步被吃掉了,不执行) 
        } finally { 
            return true; // 第4步. 控制转移,直接返回,吃掉了异常 
        } 
    } 
     
    public static void doThings(int i) 
    { 
     try 
     { 
      if(i==0) 
      { 

 

       //在执行return之前会先执行finally 
       return; 
      } 
      int t=100/i; 
      System.out.println(t); 
     }catch(Exception ex) 
     { 
      ex.printStackTrace(); 
     } 
     finally 
     { 
      System.out.println("finally"); 
     } 
    } 


 

 如果你想学习更多的技术,想挑战程序员,挑战项目经理,挑战自我~
可以在线咨询QQ:77 9 02 01 6 58  http://www.sinojava.com  
我们将竭诚为你提供最好的行业咨讯~ 

 
Vc/MFC| vc++ |软件工程培训| web应用程序|.net| c语言|股票分析|游戏开发|软件工程/管理|企业开发|专题开发/技术/项目/| Linux/Uni社区|硬件/嵌入开发|程序员杂志|开发语言|基础类|非技术类|界面|网络编程|进程/线程/DL| ATL/Activex/com|数据库|硬件|系统|HTML|XML|图形处理|算法|VISUAL C++资源|非技术类|控件|API|VBA|COM|DCOM|COM+|VB资源|VCL组件开发及应用|数据库相关|WINDOWS SDK|网络通信|分布式开发|语言基础|系统设计|GAME|VCL组件使用和开发|网络及通讯开发|BCB茶馆|汇编语言|KYLINX|脚本语言|Perl/python|office开发|其他开发语言|数据结构与算法|函数式编程|SVG|J2SE基础类|J2SE扩展类|GUI设计|WEB开发|J2EE|EJB|JMS|J2ME|WEB SERVICES|XML| 应用服务器|框架|开源|SUN JAVA认证|BORLAND JBUILDER|Intellij IDEA|ECLIPSE|NETBEANS|安全专题|架构设计|非技术区|应用性能管理|图表区|VC.NET|VB.NET|DELPHI.NET|.NET Framework|web services|j#|c#|c#buider|.net技术前瞻|.NET分析与设计|IBM人才论坛|IBM软件认证|IBM合作在线技术支持|数据仓库|VFP|ACCESS|SYBASE|SQL anywhere studio|infor mix|interbase|MYSQL|POSTGRESQL|数据库报表|VISUAL DBTOOLS|其他数据库|应用性能管理|ISS|CGL|XML|SOAP|AJAX技术|JSP|ASP|软件规划版|开发方法版|开发过程版|质量管理与控制版|管理版|休闲广场|微创软件开发管理|loushang开发平台|地理信息系统|企业信息化|行业开发|weblogic|lotus|exchange server|sap|中间件技术|英特尔多核计算技术|设计模式|人工智能技术|搜索引擎技术|多媒体/流媒体开发|游戏开发|数据结构与算法|网络通信|图形图象机器视觉|数据库应用|设计版|信息|网络安全|函数式编程|google技术社区|网页设计|图象工具使用|FLASH使用|FLASH开发|交互式设计|系统维护与使用区|程序开发区|内核及驱动程序研究区|专题技术讨论区|实用资料发布区|UNIX文化|平台开发|手机操作系统|开发应用|近距离无线技术|移动计算技术|多核计算技术|主动管理技术|OFFICE使用|一般软件使用|安全技术与病毒|网络管理配置和工具使用|VISTA|GADGETS|TIVOLI|图书讨论|二手书交易|电子版图书|选题与出版|名家线上交流|人民邮电出版社|P&c出版社|趋势科技与向让的您共勉|软件培训|IT认证|软件水平考试|IBM软件认证|SUN JAVA认证|ORACLE认证与考试|软件学院|传智博客学员交流|程序人生|IT传闻|程序员英语|清软国际培训|IBM人才论坛|程序员大本营|CELL组件、插件|人民邮电出版社|清华大学出版社|微创软件开发管理|中国软件技术大会|应用性能管理|
 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息