黑马程序员_基础复习08_异常

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

异常就是程序在运行时出现的不正常情况。异常允许我们强制程序停止运行,并告诉我们出现了什么问题,或者强制程序处理问题,并返回到稳定状态。

1、异常参数

我们用new在堆上创建异常对象。标准的异常类有两个构造器:默认构造器和接受字符串作为参数,以便把相关信息放入异常对象的构造器。

如:throw new NullPointerException(“t = null);

异常类型的根基类是Throwable,它的子类有ErrorExceptionError是错误,不能处理的错误,而Exception是可以被捕获的异常。

2、捕获异常

Java提供特有的语句进行异常处理:

try{

  需要被检测,尝试执行的代码

}catch(异常类 变量){

  处理异常的代码

}

finally{

  一定会执行的语句,通常用于关闭资源等。

}

捕获异常有以下三种形式:

try{..}catch(){...}   try{...}catch(){...}finally{...}   try{...}finally{...} 

3、创建自定义异常

我们可以自定义异常来处理自己的程序中可能出现的异常。

要自定义异常,必须从已有异常类继承,通常从Exception类继承。建立新异常类型最简单的方式就是让编译器为你产生默认构造器。

class SimpleException extends Exception{

}

public class InheritingExceptions {

  public void f()throws SimpleException{

    System.out.println("Throw SimpleException from f()");

    throw new SimpleException();

  }

  public static void main(String[] args) {

    InheritingExceptions sed = new InheritingExceptions();

    try{

      sed.f();

    }catch(SimpleException e){

      System.out.println("Caught it!");

    }

  }

}

编译器创建默认构造器,自动调用基类的默认构造器。

 

对捕获到的异常进行常见的操作有getMessage():获得异常信息

 toString():异常名称:异常信息

 printStackTrace():异常名称:异常信息及位置。

在方法声明出throws异常后,必须在方法体中try/catch处理,否则编译失败。

对多异常处理时,可以用多个catch来捕获异常,如果多个catch块中的异常出先继承关系,父类往下放。

4、异常在子父类覆盖中的体现

1)子类在覆盖父类时,如果父类的方法抛出异常,子类分覆盖方法,只能抛出父类的异常或该异常的子类

2)如果父类抛出多个异常,则子类在覆盖方法时,只能抛出父类异常的子集

3)如果父类或接口的方法中没有抛出异常,那么子类在覆盖方法时,也不能抛出异常。若子类方法发生异常,只能try处理。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值