------- android培训、java培训、期待与您交流! ----------


                  

Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能

通过 Java 虚拟机或者 Javathrow 语句抛出。类似地,只有此类或其子类之一才可以是catch 子句中的参数类

型。两个子类的实例,ErrorException,通常用于指示发生了异常情况。 

throws,throw,try,catch,finally,他们分别代表的意思是

     (1)throws 关键字用于在方法中抛出异常,把代码中的异常交给上级去出理,自己不处理;
      
     (2)throw 关键字用于在方法中发生错误时抛出具体的异常,如果是运行期异常则在该方法定义时不需要throws 关

键字抛出异常;反之,就要抛出异常的具体的名字;
      
      (3)try,catch,finally这三个关键字不能单独使用,必须配合使用,组合是
      

1)try{
          //
          保护区代码
       }catch(Exception e){// catch扑捉的异常的具体名称,他们的祖父类是Throwable。Exception是所有异常的父类
         发生异常时的处理
        }
        
         2)try{
          
          保护区代码
         }finally{    //finally区域中的代码总会执行
         
            一般是用来关闭数据源链接的
        }
        
        3) try{
           
            保护区代码
        }catch(Exception e){
         
           发生异常时的处理
         }finally{   //finally区域中的代码总会执行
         
            一般是用来关闭数据源链接的
            
         }
         
        
       (4)在try中是不可以抛出异常的 
 
       
 
一个不错的finally知识点:  如果直接打印结果结果是多少?如果把注释去掉结果又是多少?为什么呢?
         class Test2 {
     public static void main(String[] args) {
          System.out.println(new Test2().test());;
     }
     static int test()
     {
             int x = 1;
          try
          {
              return x;
          }
          finally
          {
              ++x;
 //             return x;
          }
     }
 }


 

 很奇怪吧,第一次打印的结果是1,第二次打印的结果是2;

这是因为finally里的代码总是要执行的,当第一次碰到return时,返回的x其实被存放在一个临时的栈内存中,当运行完 

finally时,然后主函数在通过内部方法来返回第一次的return值。

                      当主函数碰到return 语句就会返回,但由于finally里面的代码总会执行,而且这里面多了个return语句,所以程序会放弃第一次return的标记,而返回finally区域中的x的值

 

 

 

 ------- android培训、java培训、期待与您交流! ----------