所有的异常都有公共的祖先类,Throwable,其中两个大类就是Exception和Error。
其中Error是程序无法处理的。Virtual MachineError、OutOfMemoryError、NoClassDefFoundError等,一般error时,虚拟机都选择直接线程终止
对于Exception,是Java可以自己解决的异常,可以Throwable给上一级或者try catch掉。它有分为受检查异常(Checked Exception)和不受检查异常(Unchecked Exception)
Checked Exception和Unchecked Exception的区别Checked Exception发生了是在编译期间都过不去的,除非被catch或者throw
Unchecked Exception是在运行期间发生的。
RuntimeException 及其子类都统称为非受检查异常,常见的有(建议记下来,日常开发中会经常用到):
- NullPointerException(空指针错误)
- IllegalArgumentException(参数错误比如方法入参类型错误)
- NumberFormatException(字符串转换为数字格式错误,IllegalArgumentException的子类)
- ArrayIndexOutOfBoundsException(数组越界错误)
- ClassCastException(类型转换错误)
- ArithmeticException(算术错误)
- SecurityException (安全错误比如权限不够)
- UnsupportedOperationException(不支持的操作错误比如重复创建同一用户)
Throwable 类常用方法有哪些?
String getMessagr()
String printStackTrace()
String toString()
String getLocalizedMessage()
try-catch-finally 如何使用?
try里面是准备运行实现的代码,用来捕获异常,后面可以跟0,1,多个catch。如果没有catch,必须跟一个finally
catch是用来,处理异常的。
finally,无论是否捕获处理异常,都需要执行finally中的异常。当在try中有return语句,finally在语句返回之前进行执行。
ps:不要在finally中执行return,因为try中的return的返回值暂存在一个本地变量中,finally中要是有return语句的话,会改变返回值
ps:finally中语句不是一定被执行,由于虚拟机可能会被终止运行那就不运行了
泛型定义了泛型参数让代码在编译期就传入的是指定的参数类型。方便代码的可读性,可写性。
常见的泛型:泛型类、泛型接口、泛型方法
泛型类常见
Linkedlistlist = new Linkedlist ();



