资讯专栏INFORMATION COLUMN

Java知识点总结(JavaIO-异常)

Near_Li / 3145人阅读

摘要:知识点总结异常知识点总结异常为什么需要异常机制不是所有的问题都能在编译时被发现,有些问题在程序运行时才会暴露出来异常机制是面向对象的处理程序在运行时发生的状况的手段使用异常机制不会打乱原有业务逻辑的用块把可能出异常的代码保护起来用一个

Java知识点总结(JavaIO-异常)

@(Java知识点总结)[Java, Java异常]

[toc]

为什么需要异常机制

不是所有的问题都能在编译时被发现,有些问题在程序运行时才会暴露出来

  异常机制是面向对象的处理程序在运行时发生的状况的手段
  使用异常机制不会打乱原有业务逻辑的
        - 用try块把可能出异常的代码保护起来
        - 用一个或多个catch块捕获发生的异常
Throwable

可以用throw关键字抛出Throwable及其子类对象

相关方法

getCause()

getMessage()

printStackTrace()

fillInStackTrace()

两个子类

Error

AssertionError

VirtualMachineError

StackOverflowError

OutOfMemoryError

AWTError

Exception

运行时异常(非受检异常) - RuntimeException

受检异常

异常的使用 声明异常

修饰符 返回类型 方法名(参数列表) throws 异常1,异常2, ...

声明的异常通常是受检查的异常

声明异常是为了让方法的调用者处理异常

声明异常时可以"无病呻吟"

子类重写的方法不能比父类被重写的方法声明更多的异常

捕获异常

try块

将可能出现异常的代码保护起来

在Java 7以前try后面必须要有catch块或者finally块,不能多带带使用

从Java 7开始可以使用TWR语法(try-with-resources)

try (需要自动释放的资源) { ... }

catch块

* 如果try块中的代码发生了异常那么就由catch块捕获异常并执行相应的处理
* 如果try块中的代码没有发生异常那么catch块不会执行
* 一个try块后面可以跟上一个或多个catch块用于处理不同类型的异常
* 如果多个catch块捕获的异常有父子关系那么要将捕获子类异常的catch块写在前面
* 异常的捕获遵循里氏替换原则
* catch块中捕获到的异常对象可以再次使用throw抛出

finally块

* 总是执行代码块,只要JVM没有关闭不管程序正常还是异常都会执行
* 最适合释放打开的外部资源

抛出异常(throw异常对象) 自定义异常

继承RuntimeException

继承Exception及其他子类

设计和使用原则

不用异常机制处理正常业务逻辑

对可恢复的情况使用受检异常,对编程错误使用运行时异常

优先使用标准的异常类型

抛出异常的方法要有对应的文档注释

出现异常的方法要使对象保持在被调用之前的状态

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/69257.html

相关文章

  • Java识点总结JavaIO-File类)

    摘要:知识点总结类知识点总结类类可以进行创建和删除文件等操作。使用一个类,则必须向类的构造方法中传递一个文件路径。 Java知识点总结(JavaIO-File类) @(Java知识点总结)[Java, JavaIO] [toc] File类 File类可以进行创建和删除文件等操作。使用一个File类,则必须向File类的构造方法中传递一个文件路径。 showImg(https://segme...

    KavenFan 评论0 收藏0
  • Java识点总结JavaIO- Scanner类 )

    摘要:知识点总结类知识点总结后提供的输入数据类,此类位于包中,不仅可以完成输入数据的操作,还可以方便地对输入数据进行验证。 Java知识点总结(JavaIO- Scanner类 ) @(Java知识点总结)[Java, JavaIO] showImg(https://segmentfault.com/img/bV9dAj?w=838&h=396); JDK 1.5后提供的输入数据类,此类位于...

    CarlBenjamin 评论0 收藏0
  • Java识点总结JavaIO-合并流类)

    摘要:知识点总结合并流类知识点总结合并流的主要功能是将两文件的内容合并成一个文件字节在多文件的应用场景下非常高效,因为是将多个流串联起来,形成一个流,便于操作 Java知识点总结(JavaIO- 合并流类 ) @(Java知识点总结)[Java, JavaIO] [toc] showImg(https://segmentfault.com/img/bV9a9X?w=853&h=164); 合...

    iliyaku 评论0 收藏0
  • Java识点总结JavaIO- BufferedReader类 )

    摘要:知识点总结类知识点总结类用于从缓冲区中读取内容,所有的输入字节数据都将放在缓冲区中中定义的构造方法只能接收字符输入流的实例,所以必须使用字符输入流和字节输入流的转换类将字节输入流转变为字符流。 Java知识点总结(JavaIO- BufferedReader类) @(Java知识点总结)[Java, JavaIO] [toc] showImg(https://segmentfault....

    alanoddsoff 评论0 收藏0
  • Java识点总结JavaIO-转换流)

    摘要:知识点总结转换流知识点总结是的子类,将一个字符流的输出对象变为字节流的输出对象。将字节输出流转为字符输出流字节流转为字符流苹果将字节输入流转为字符输入流内容是 Java知识点总结(JavaIO-转换流) @(Java知识点总结)[Java, JavaIO] [toc] showImg(https://segmentfault.com/img/bV82dQ?w=849&h=226); O...

    luckyyulin 评论0 收藏0

发表评论

0条评论

Near_Li

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<