作家
登录

Java异常的深入研究与分析

作者: 来源: 2017-06-06 13:00:49 阅读 我要评论

  •                 throw new Exception("a的值大年夜于0,不相符请求"); 
  •             } 
  •             catch (Exception e) 
  •             { 
  •                 // TODO Auto-generated catch block 
  •                 e.printStackTrace(); 
  •             } 
  •         } 
  •     }  
  • 留意:此时在main函数琅绫擎throwChecked就不消try异常了。

    应当在声明办法抛出异常照样在办法中捕获异常?

    处理原则:捕获并处理哪些知道若何处理的异常,而传递哪些不知道若何处理的异常

    finally关键字包管无论法度榜样应用任何方法分开try块,finally中的语句都邑被履行。在以下三种情况下会进入finally块:

    (1) try块中的代码正常履行完毕。

    (3) 在try块中履行return、break、continue。

    是以,当你须要一个处所来履行在任何情况下都必须履行的代码时,就可以将这些代码放入finally块中。当你的法度榜样中应用了外界资本,如数据库连接,文件等,必须将释放这些资本的代码写入finally块中。

    必须留意的是:在finally块中不克不及抛出异常。JAVA异常处理机制包管无论在任何情况下必须先履行finally块然后再分开try块,是以在try块中产生异常的时刻,JAVA虚拟机先转到finally块履行finally块中的代码,finally块履行完毕后,再向外抛出异常。如不雅在finally块中抛出异常,try块捕获的异常就不克不及抛出,外部捕获到的异常就是finally块中的异常信息,而try块中产生的┞锋正的异常客栈信息则损掉了。请看下面的代码:

    1. Connection  con = null
    2. try 
    3.     con = dataSource.getConnection(); 
    4.     …… 
    5. catch(SQLException e) 
    6.     …… 
    7.     throw e;//进行一些处理后再将数据库异常抛出给调用者处理 
    8. finally 
    9.     try 
    10.     { 
    11.         con.close(); 
    12.     } 
    13.     catch(SQLException e) 
    14.     e.printStackTrace(); 
    15.     …… 
    16.  

    运行法度榜样后,调用者获得的信息如下

    at myPackage.MyClass.method1(methodl.java:266)

    应用finally块释放资本

    而不是我们期望获得的数据库异常。这是因为这里的con是null的关系,在finally语句中抛出了NullPointerException,在finally块中增长对con是否为null的断定可以避免产生这种情况。

    损掉的异常

    请看下面的代码:

    1. public void method2() 
    2. try 
    3.     …… 
    4.     method1();  //method1进行了数据库操作 
    5. catch(SQLException e) 
    6.     …… 
    7.     throw new MyException("产生了数据库异常:"+e.getMessage); 

    8.   推荐阅读

        开源要「开」得安全高效:开源云计算的五大发展趋势

      编者按:以前几年,开辟者几乎都邑用到开源。开源现象日益广泛,有赖于业内人士的聪明和尽力。不过,更重要的┞氛样开源本身的优势:可以或许随便马虎整合多种多样的开源解决筹划。在业内>>>详细阅读


      本文标题:Java异常的深入研究与分析

      地址:http://www.17bianji.com/lsqh/35587.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)