Exception总结

1.throw 和 throws的总结

    throws 时在声明方法的时候该方法要抛出异常 形式如下public static void testException()throws Exception

    throw是抛出异常对象 程序会在throw语句后立即终止,它后面的语句执行不到 如 throw new RuntimeException();

2.try catch块

      try {} catch (Exception e) {}finally{}   当成出现异常的时候会进入catch块中,无论是否有异常 都将执行fianlly                  

      代码块

      必须在 try 之后添加 catch 或 finally 块。try 块后可同时接 catch 和 finally 块,但至少有一个块。

      当含有多个catch块时 一旦某个catch捕获到匹配的异常类型,将进入异常处理代码。一经处理结束,就意味着整个try-catch语句结   

      束。其他的catch子句不再有匹配和捕获异常类型的机会.             

3.finally代码块

    无论是否捕获或处理异常,finally块里的语句都会被执行。当在try块或catch块中遇到return语句时,finally语句块将在方法返回之前被执行。  当finally中含有return语句时,则方法立即结束,不会执行try catch块中的return  或 throw 语句        

    在以下4种特殊情况下,finally块不会被执行:
    1)在finally语句块中发生了异常。
    2)在前面的代码中用了System.exit()退出程序。
    3)程序所在的线程死亡。
    4)关闭CPU

4.自定义异常信息

    继承Exception  

    class MyException extends Exception { // 创建自定义异常类  
        String message; // 定义String类型变量  

        public MyException(String ErrorMessagr) { // 父类方法  
              message = ErrorMessagr;  
          }  
        public String getMessage() { // 覆盖getMessage()方法  
              return message;  

              }  

        }

4.问题总结

    1.)代码:

  1. public  classTest {  

  2.   

  3.     public static void main(String[] args) {  

  4.        System.out.println(newTest().test());  

  5.     }  

  6.     static int test()  

  7.     {  

  8.        int x = 1;  

  9.        try  

  10.        {  

  11.            return x;  

  12.        }  

  13.        finally  

  14.        {  

  15.            ++x;  

  16.        }  

  17.     }  

  18. }

    分析:return x  应该分开来看 , 在执行return之前  x的值已经返回给了主函数,而return的只是结束当前函数


转载于:https://my.oschina.net/JMSoldier/blog/361476

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值