JAVA异常

Java异常

Throwable

Throwable是Java语言中所有错误或异常的超类。
Throwable包含两个子类:Error 和 Exception,它们通常用于表示发生了异常情况。
Throwable包含了其线程创建时线程执行的快照,它提供了printStackTrace()等接口,用于获取堆栈跟踪数据等信息。

Exception

Exception及其子类是Throwable的一种形式,它指出了合理的应用程序想要捕获的条件。

RuntimeException

1-RuntimeException是那些可能在Java虚拟机正常运行期间抛出的异常的超类。
2-编译器不会检查RuntimeException异常。例如:除数为0,抛出ArithmeticException异常。RuntimeException是
ArithmeticException的超类。若没有通过throws声明抛出异常,也没有try...catch...处理该异常,也能通过编译,
这就是我们所说的“编译器不会检查RuntimeException异常”,如果代码产生了运行时异常,则需要修改代码来避免。

Error

和Exception一样Error也是Throwable的子类。它用于指示合理的应用程序不应该试图捕获的严重问题,大多数这样的错误都是异常条件,和RuntimeException一样,
编译器不会检查Error。

Java将可抛出的Throwable的结构分为三种类型:运行时异常,被检查的异常,错误

01)运行时异常

RuntimeException及其子类都被成为运行时异常
如:数组下标越界 ArrayIndexOutOfBoundsException
    字符串下标越界 StringIndexOfOutBoundsException
    空指针异常 NullPointerException
    (非法参数)参数异常 IllegalArgumentException
    类型转换异常 ClassCastException

02)被检查异常

Exception,以及子类中除了运行时异常之外的其他子类都属于被检查异常
特点:Java编译器会检查它。此类异常,要么通过throws进行声明抛出,要么通过try-catch捕获处理,否则不能通过编译。
如:流异常 IOException
    HTTP异常 HttpException
    文件不存在异常 FileNotFoundException
    SQL异常 SQLException
    XML异常 SAXException
被检查异常通常都是可以恢复的

03)错误

Error类及其子类
和运行时异常一样,编译器不会对错误进行检查
当资源不足、约束失败就产生错误。程序本身无法修复这些错误。
如: 内存溢出 OutOfMemoryError
    栈溢出 StackOverflowError
    未知错误 UnknownError

对于可以恢复的条件使用被检查异常,对于程序错误使用运行时异常。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 通俗编程——白话JAVA异常机制 - 代码之道,编程之法 - 博客频道 - CSDN.NEThttp://blog...
    葡萄喃喃呓语阅读 3,337评论 0 25
  • Java异常 异常指不期而至的各种状况,如:文件找不到、网络连接失败、非法参数等。异常是一个事件,它发生在程序运行...
    java部落阅读 3,662评论 1 13
  • 此时此刻,在我的枕头上躺着一只怡然自得,正用舌头梳理毛发的胖猫。它是那么坦然,仿佛这地盘本来就是他的。全然不顾它的...
    cool桃阅读 701评论 0 0
  • 雷峰塔(五) ▼珍珍花露 白娘子 有情义 千里寻找 多次试探 许仙忠义 品质高尚 遭受冤狱 ...
    向前的冰山来客15669阅读 217评论 0 6
  • 父母来北京玩儿,我的脚却崴了,很不凑巧地,很不合时宜地。她在努力地用不怎么标准的普通话和医生交流,我恍然又变成了她...
    千步连翘阅读 197评论 0 0

友情链接更多精彩内容