javase知识点 ----18 (异常处理)

1、异常和错误的区别
  异常指的是运行过程中的不正常事件,可以被异常机制处理,程序能够继续运行下去;
  错误不能够被处理,发生错误后,程序就终止,程序员需要修改源代码才能解决错误;
  
2、异常体系:
   Throwable类有两个直接子类:Exception类(运行期异常(所有RuntimeException的子类)和编译期异常(除了运行期以外的))、Error类。

3、
try{
      可能抛出异常的代码块;
}catch(异常类型  变量名){
       处理异常的代码;
}finally{
      不管什么情况,一定被执行的代码块;
}


注意:1、当try的语句发生异常,此条语句后面的语句就不再执行了
     

4、catch里面可以写什么?
    1、可以写任意需要对异常进行处理的代码;
    2、可以调用异常对象的方法,例如printStackTrace,查看异常发生的栈轨迹

注意:一个try后面可以写多个catch
     catch语句的异常类型必须从子类到父类的顺序,否则编译错误;


5、我们可以发现程序中有这样几种情况:
没抛出异常;     try-finally--继续执行程序
抛出异常并被处理了;   try - catch --finally--继续执行程序
抛出异常没有被处理;   try--catch异常匹配失败,跳出catch--finally--终止程序


6、catch及finally的可选特性
  1、必须有try,catch可以有1个或多个,finally最多1个,可以没有,不能有多个;
  2、还有另外一种组合:只有try和finally,没有catch

7、finally与return的执行顺序
  1、总之 finally 永远执行!除非前面有System.exit(0)退出虚拟机。
  2、return在finally之后执行

8、throw、throws
throw 异常对象;eg:throw new Exception();
或者
catch(Exception e){
    throw e;
}

throws用在方法声明处,声明该方法可能发生的异常类型;
注意:1、一个方法如果使用了throws,那么调用该方法时,编译器会提醒必须处理这些异常,否则编译错误;
     2、throws后可以声明多种类型,用逗号隔开即可;
     3、抽象方法也可以使用throws声明该方法可能抛出的异常类型;


9、自定义异常
基本语法
public  class 异常类名 extends Exception{
        public 异常类名(String msg){
            super(msg);
     }
 }
 
 在程序中使用自定义异常大致可以分为以下几步
1、创建自定义异常类
2、在方法中通过throw 关键字抛出自定义异常
3、如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理,否则在方法的声明处通过throws关键字声明该异常
4、调用throws声明该异常的方法时,使用try  catch捕获自定义的异常类型,并在catch中进行处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值