JAVA 异常处理——声明、抛出异常

异常处理——声明、抛出异常

声明检查类型异常 throws

  概述:如果一个方法可能会出现异常,但我们不想使用try…catch 精准捕捉处理异常,只想模糊处理,可以在方法声明处用throws子句来声明抛出异常。其实程序默认的报错方式就是抛出。

  例如:如果我们需要读取一份文件,但是有可能读取的文件不存在,或者内容为空,所以我们需要告诉编译器可能会出现FileNotFoundException类异常

public FileInputSteam(String name) throws FileNotFoundException,ArrayIndexOutOfBoundsException // 可以抛出多个异常
  1. 注意:子类抛出的异常必须与父类一致,或者是父类异常的子类。
  2. 注意:throws 会将异常抛给调用的语句块。比如 f1( )方法里面抛出了FileNotFoundException异常,若 f2( )方法调用 f1( )方法,f2( )方法就得处理f1( )方法里面抛出的FileNotFoundException异常。前提是这个异常是 检查型/运行时异常,非检查型异常不报错,因为非检查型异常本身就默认有检查方式抛出。
    • 处理方式
      • f2( )方法也抛出FileNotFoundException异常
      • f2( )方法使用try…catch捕捉异常

抛出异常 throw

抛出异常很简单,抛出后就不用管了
  • throw 将产生的异常抛出(强调的是动作),抛出的既可以是异常的引用,也可以是异常对象。注意与 throws 的区别
  • 首先要决定抛出什么异常,比如 throw new IOException
  • 也可以是 var e = new IOException( ) ; throw e ;

创建自定义异常类

  • 概述:如果遇到现有任何标准异常类都无法描述清楚的问题,这种情况下就需要创建一个属于自己的异常类了。
  • 如何:我们要做的就是定义一个派生于Exception 的类,或者子类,比如IOException。
    • 超类Throwable 的 toString 会返回字符串,很好用
    • 创建异常类应该包含两个构造器,一个是默认的构造器,一个是包含详细描述信息的构造器。
//创建自定义异常类
class FileFormatException extend IOException{
    public FileFormatException(){}  // 默认的构造器
    public FileFormatException(String gripe){  // 详细描述信息的构造器
        super(gripe);
    }
}
// 抛出自定义异常类
String readData(Buffered in) throws FileFormatException{
    ......
    while(...){
        if (. . .){
            throw new FileFormatException();
        }
      ......
    }
    return ...;
}
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值