异常和IO

时间:2023-03-08 22:09:03

异常

异常是指java程序运行时(非编译)所发生的非正常情况或错误。

Java对异常进行了分类,不同类型的异常分别用不同的 Java 类表示,所有异常的根类为 java.lang.Throwable,

Throwable 类

|-error 类表示系统级的错误,应用程序本身无法克服和恢复。比如说内存溢出和线程死锁等,不可能指望程序能处理这样的情况。

|-exception 类表示需要捕捉,或者需要程序进行处理的异常,是一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

|-A: unchecked, runtime exception(系统异常): 可以不处理。

|-B:    checked exception(一般普通异常): 编译器强制,必须用 [try..catch 处理] 或用 [throws 声明继续抛给上层调用方法处理]。

A: 是软件本身缺陷所导致的问题,也就是软件开发人员考虑不周所导致的问题,软件使用者无法克服和恢复这种问题,但在这种问题下还可以让软件系统继续运行或者让软件死掉。ArrayIndexOutOfBoundsException,NullPointerException、ClassCastException

B: 是运行环境的变化或异常所导致的问题,是用户能够克服的问题,例如,网络断线,硬盘空间不够,发生这样的异常后,程序不应该死掉。

运行时异常与一般异常有何异同?

异常表示程序运行过程中可能出现的非正常状态,

运行时异常: 表示虚拟机的通常操作中可能遇到的异常,是一种常见运行错误。

java编译器要求方法必须声明抛出可能发生的非运行时异常,

但是并不要求必须声明抛出未被捕获的运行时异常。

------------------------------------------------------------------------------------

IO

一、java中有几种类型的流?

字节流(继承于 InputStream,OutputStream)

字符流(继承于 InputStreamReader,OutputStreamWriter)

在 java.io 包中还有许多其他的流。

字符流是字节流的包装,字符流是直接接受字符串,它内部将字符串转成字节,再写入底层设备,为我们向 IO 设备写入或读取字符串提供了一点点方便。