abstract面向对象编程==>面向接口编程
Exception 编译时异常(除RunTimeException外都是)
|| RunTimeException运行时异常
直接子类是编译时异常(必须处理)
两种解决方式:上抛或try,catch
在使用计算机语言进行项目开发的过程中,即使程序员把代码写得尽善尽美,在系统的运行过程中仍然会遇到一些问题。某些问题不不是靠代码能够避免的,比如客户输入数据的格式、读取文件是否存在、网络是否始终保持通畅等。在 Java 语言中,将程序运行期间发生的不期而至的各种意外状况(除开发过程中的语法错误和逻辑错误)称为异常,如文件找不到、网络连接失败、非法参数等。
Java通过API中的Throwable类的众多子类描述各种不同的异常,所以Java异常是 Throwable子类的实例化对象。Throwable有两个重要的子类:Exception(异常)和Error(错误)。二者都是Java异常处理的重要子类,名自又都包含大量子类。Java异常类的层次结构。
package com.Book;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class ExceptionTest {
public static void main(String[] args) {
FileInputStream fis = null;
try {
fis = new FileInputStream("hello.txt");
int b;
b = fis.read();
while (b != -1){
System.out.print((char) b);
b = fis.read();
}
}
catch (FileNotFoundException e){
System.out.println("文件找不到,出现异常");
e.printStackTrace();
}
catch (IOException e){
System.out.println("文件读写出现异常");
e.printStackTrace();
}
finally {
try {
fis.close();
}
catch (IOException e){
System.out.println("文件关闭出现异常");
e.printStackTrace();
}
}
}
}