这篇文章只是为了复习做的记录,还会有其他的文章
一部分来自JavaGuide
大家可以关注😁😁😁😁
异常
Exception和Error有什么区别
Throwable是所有错误和异常的父类
- Exception:程序本身可以处理的异常,可以通过
catch
来进行捕获。Exception
又可以分为Checked Exception(受检异常,必须处理)和Unchecked Exception(非受检异常,可以不处理) - Error:Error属于程序无法处理的错误,不建议通过
catch
捕获。例如Java虚拟机运行错误VirtualMachineError
、虚拟机内存溢出错误OutOfMemoryError
、类定义错误NoClassDefFoundError
等。这些错误发生时,Java虚拟机一般会选择线程终止
Checked Exception和Unchecked Exception有什么区别
Checked Exception即受检异常,Java代码在编译过程中,如果受检异常没有被处理,就没办法通过编译
除了RuntimeException
及其子类以外,其他的Exception
类及其子类都属于受检异常。常见的受检异常有:IO相关的异常、ClassNotFoundException
、SQLException
Unchecked Exception即非受检异常,Java代码在编译过程中,即使不处理也可以正常通过编译
RuntimeException
及其子类都统称为非受检异常,常见的有
NullPointerException
(空指针错误)IllegalArgumentException
(参数错误比如方法入参类型错误)NumberFormatException
(字符串转换为数字格式错误,IllegalArgumentException
的子类)ArrayIndexOutOfBoundsException
(数组越界错误)ClassCastException
(类型转换错误)ArithmeticException
(算术错误)SecurityException
(安全错误比如权限不够)UnsupportedOperationException
(不支持的操作错误比如重复创建同一用户)
Throwable类的常用方法有哪些
// 返回抛出异常的详细信息
public string getMessage();
public string getLocalizedMessage();
// 返回异常发生时的简要描述
public public String toString();
// 打印异常信息到标准输出流上
public void printStackTrace();
public void printStackTrace(PrintStream s);
public void printStackTrace(PrintWriter s);
// 记录栈帧的当前状态
public synchronized Throwable fillInStackTrace()<