Java中异常的声明和捕获

声明:将问题标识出来,报告给调用者,依次向上(向调用者)声明,

声明方式:在函数上:throw 异常类名——保证在调用函数时就能见到这个异常(函数里声明异常就看不见/函数被封装)

1class Demo{
2    void show() throws Exception//向上声明
 3   {
 4       throw new Exception();
 5   }
6}
7    Demo d = new Demo();
8    d.show();

当代码写到这里,会出错误:第八行错误:要么捕获要么声明——因此继续向上声明

7    Demo d = new Demo()throws Exception;

主函数中向上调用者声明就到虚拟机:虚拟机就要做出最后的处理:显示异常并且终止程序

总结:如果函数内通过throw 抛出了编译时的异常而且没有捕获,那么必须通过trows 进行声明,让调用者去处理

(继承 RuntimeException 是无需声明和捕获的)

————————————————————————————————————————————————————

捕获:标准语句

try{
    //需要被检测的代码和语句
        }
        catch(异常类  变量名){
    //异常的处理语句
        }
        finaly{//可以没有这个语句
    //一定会被执行的语句
        }

上例捕获:

class Demo{
   void show() throws Exception//向上声明{
              throw new Exception();
           }
}
   Demo d = new Demo();
//捕获其实也是对异常的处理,处理后Java认为这个程序的安全隐患已经解除,程序其他部分是可以正常进行的
try{
    d.show();
    //需要被检测的代码和语句//当检测到异常就把异常传给catch
        }
        catch(Exception e){//接收到的异常对象: new Exception()
    System.out.println("异常发生了!!");
    //异常的处理语句
        } 
捕获其实也是对异常的处理,处理后Java认为这个程序的安全隐患已经解除,程序其他部分是可以正常进行的

小技巧:Java的编译器最后才检查异常

关于编译异常和运行异常的总结:

1.自定义内容的异常类都由继承而来,都要抛出 throw

2.继承:Exception:要有声明throws(JVM给出最后的处理方式,显示和结束程序)或者是捕获(由编写者给出处理方式,程序可以继续执行)

             RuntimeException:不需要声明和捕获,最后也会由JVM做出解决方式,显示和结束程序


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值