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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容