异常继承架构
整体架构如下:
- error:严重系统错误,如硬件层面错误、内存不足等问题,从编程角度无法解决,虽然可try-catch,但不建议,应传到JVM或仅日志记录。
- 受检异常:IOException(FileNotFountException)等,受编译程序检查,必须try-catch,否则编译不通过。
- 非受检异常:RuntimeException,可以通过编译,也可以try-catch。从程序的角度来讲,这类异常一般都可以通过代码来规避异常的出现。非受检异常不try-catch也可以自动向外传播。
多重捕捉,可以catch多个异常,异常之间不得有继承关系,否则会发生编译错误。
throw、throws的使用时机
先举个例子展示throw和throws的使用方法,示例代码如下,示例代码的主要功能是读取文件中的文字内容并转化为一个String对象。throw用于方法体中,通常为catch的程序块,但不限于catch,任何位置使用throw抛出异常,会直接跳离当前流程。throws用于声明方法后抛出受检异常。
public static String readFile(String fileName) throws Exception{
StringBuffer text = new StringBuffer();