什么是异常?
异常就是程序出现的错误
异常有什么作用?
⭐方便我们快速辨别,分析并找到bug
⭐提前预知异常并提供异常处理方案,防止程序停止造成的巨大问题
当异常发生时调用者会接收到产生的异常,若异常被捕获系统进而执行程序员提前编写的异常处理(不会中断程序),未被捕获则使用默认处理(直接中断程序)
异常的分类
Error类
系统错误异常,如 内存溢出(StackOverFlowError,栈内存溢出),此类异常出现直接终止程序,只能依赖优化代码进行规避
Exception类
分为编译时异常和运行时异常两大类
编译时异常
Exception类的子类中除了RuntimeException大类(运行时异常)其他都是编译时异常,编译阶段之前就要处理,例如语法错误,用法错误等太多
运行时异常
即RuntimeException类及子类异常,运行时出现的异常,一般是参数错误,如OutofIndexException(索引越界异常)
异常的处理方式
JVM默认处理
控制台输出错误信息,并直接终止程序
捕获处理异常
使用捕获处理异常可以不终止程序的运行,而是执行自行设计处理方式
Idea快捷键: Alt + Ctrl + t
处理规则
异常类常用方法
一般用printStackTrace()即可
抛出异常
由程序员自行决定出现的异常,同其他异常一样会递交调用者并可以被捕获
throw new 异常类名() //如:throw new IllegalArgumentException();
自定义异常
继承Exception或RuntimeException类并重写空参与无参构造的类就是自定义异常类