java异常处理问题

image
  • 什么时候向上抛出异常?
    1.传递一个危险信号,需要让调用方知道
    2.本方法没有能力处理的异常,调用方有能力处理
    3.抛出是框架层面的选择
    打个比方,小孩摔倒了,伤口流血,告诉爸妈是一个危险信号。告诉医生是他们有能力处理。告诉身体,是框架层面的,自动去调节身体免疫系统

  • throw和throws的区别?
    1.throws 出现在方法声明上,而throw通常都出现在方法体内
    2.throws 表示出现异常的一种可能性,并不一定会发生这些异常;throw则是抛出了异常,执行throw则一定抛出了某个异常对象

  • 运行时异常与非运行时异常的区别?
    1.运行时异常是不可查异常,不需要进行显式的捕捉
    2.非运行时异常是可查异常,必须进行显式的捕捉,或者抛出

  • 常见的 RuntimeException 有哪些?
    1.ClassCastException(类转换异常)
    2.IndexOutOfBoundsException(数组越界)
    3.NullPointerException(空指针)
    4.ArrayStoreException(数据存储异常,操作数组时类型不一致)
    5.IO操作的BufferOverflowException异常


参考
https://zhuanlan.zhihu.com/p/56115804
https://www.zhihu.com/question/25530011/answer/314890026
https://how2j.cn/k/exception/exception-tutorial/332.html

你可能感兴趣的:(java异常处理问题)