前言:
不做无水之源,无本之木。
正文:
java程序的基本单位是类。
1.单目、双目?
Java 异常处理
异常类型:
1.检查性异常
最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
2.运行时异常
运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
3.错误
错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。
异常类有两个主要的子类:IOException 类和 RuntimeException 类。
无论是否发生异常,finally 代码块中的代码总会被执行.
异常处理注意事项:
catch 不能独立于 try 存在。
在 try/catch 后面添加 finally 块并非强制性要求的。
try 代码后不能既没 catch 块也没 finally 块。
try, catch, finally 块之间不能添加任何代码。
自定义异常:
所有异常都必须是 Throwable 的子类。
如果希望写一个检查性异常类,则需要继承 Exception 类。
如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。
通用异常:
JVM(Java虚拟机) 异常:由 JVM 抛出的异常或错误。例如:NullPointerException 类,ArrayIndexOutOfBoundsException 类,ClassCastException 类。
程序级异常:由程序或者API程序抛出的异常。例如 IllegalArgumentException 类,IllegalStateException 类。
异常词的相关概念:
1、检查性异常: 不处理编译不能通过
2、非检查性异常:不处理编译可以通过,如果有抛出直接抛到控制台
3、运行时异常: 就是非检查性异常
4、非运行时异常: 就是检查性异常
异常使用需要遵循的原则:
1:在当前方法被覆盖时,覆盖他的方法必须抛出相同的异常或异常的子类; 2:在当前方法声明中使用try-catch语句捕获异常; 3:如果父类抛出多个异常,则覆盖方法必须抛出那些异常的一个子集,不能抛出新异常。