java 异常限制_Java 异常类型学习

异常类型

Throwable 类是 Error 和 Exception 的父类,只有是 Throwable 的实例才能被 JVM 或者 Java 语句抛出,捕获。Error:表示不希望被程序捕获或者是程序无法处理的错误,Error 类对象由 Java 虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关。

Checked Exception:受检查异常,需要被 try catch 捕获或者 throws 抛出;如果不处理,IDE 会提示编译不通过。

Runtime Exception(Unchecked Exception):运行时异常,由程序逻辑错误引起,程序应该尽可能的避免该类异常。

异常处理

异常发生时,有两种处理方式:捕获 or 抛出

捕获:try catch

抛出:方法名上面声明抛出 throws。

方法内抛出 throw

异常抛出限制父类的方法没有声明异常,子类在重写该方法的时候不能声明异常;

子类重写父类抛出的异常方法时,可以抛出或者不抛出异常;若抛出异常,子类抛出的异常类型必须与父类方法抛出异常类型相同,或者子类抛出的异常类型是父类方法抛出异常的子类。

错误抛出情况:子类抛出的 IOException 和 RuntimeException 不是同类型,也不是其子类。

public class C {

public void fun() throws RuntimeException{

}

}

public class D extends C {

public void fun() throws IOException,RuntimeException{

}

}如果父类抛出了 CheckedException ,那么子类重写的方法可以抛出 RuntimeException

正确的抛出情况:

public class A {

public void fun() throws IOException {

};

}

public class B extends A {

public void fun() throws IOException,RuntimeException{

}

}

自定义异常

所有异常都必须是 Throwable 的子类。

如果希望写一个检查性异常类,则需要继承 Exception 类。

如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。

异常捕获流程

1、try{} 里有一个 return 语句,那么紧跟在这个 try 后的 finally{} 里的 code 会不会被执行,什么时候被执行,在 return 前还是后?

答案:会执行,在方法返回调用者前执行。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值