A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

本帖最后由 Himoriarty 于 2015-6-10 16:54 编辑

------- <a  target="blank">android培训</a>、<a  target="blank">java培训</a>、期待与您交流! ----------

异常:就是程序在运行时出现不正常情况。
异常由来:问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述,并封装成对象。其实就是java对不正常情况进行描述后的对象体现。
对于问题的划分有严重和不严重;对严重的java通过Error类进行描述,对不严重的可以try,发出提示信息。
     
  1. <div class="blockcode"><blockquote>try
  2. {
  3.       //需要被检测的代码;
  4. }
  5. catch(//异常类  变量)
  6. {
  7.        //处理异常的代码(处理方式);
  8. }
  9. finally
  10. {
  11.          //一定会执行的语句;通常为关闭资源。
  12. }
  13. <span style="line-height: 2.2em;">
  14. </span>
复制代码
  1. //异常处理练习
  2. public class FinallyDemo
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                 java.io.PrintWriter output = null;
  7.                
  8.                 try
  9.                 {
  10.                         output = new java.io.PrintWriter("text.txt");
  11.                         output.println("Welcome to java");
  12.                 }
  13.                 catch(java.io.IOException ex)
  14.                 {
  15.                         ex.toString();
  16.                 }
  17.                 finally
  18.                 {
  19.                         if(output != null)
  20.                                 output.close();
  21.                 }
  22.                
  23.                 System.out.println("End of program");
  24.         }
  25. }
复制代码


学习中的疑问,毕老师的课程中讲到在自定义异常类时可以继承RuntimeException,这样的话就不用自己抛出异常,JVM会自动抛出,但是我在看JAVA语言程序设计这本书时里面说的是最好不要通过扩展RuntimeException声明一个自定制异常类,因为这会使自定义异常类成为免检的,最好使自定制异常必检,这样,编译器就可以在程序中强制捕捉这些异常。这是什么意思。


----------android培训java培训、java学习型技术博客、期待与您交流!------------

2 个回复

倒序浏览
继承RuntimeException的类是运行时期的异常,而不是编译时期就会提示的。
所以继承RuntimeException的类编译时编译器不会去捕捉,就是免检的意思。只有运行的时候才知道。
回复 使用道具 举报
又增长了点见识,免检。。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马