前言:之前碰到过哪些异常
1、空指针,使用null值访问成员属性会出现空指针异常
2、下标越界,当下标<0 且 >=length 的时候会出现下标越界
3、 类型转换异常
4、时间格式化异常
5、数字格式化异常,非纯数字字符串转换为int类型的时候,出现异常
6、栈内存或者堆内存溢出
异常是什么
异常就是错误的一种描述
异常是Java种专门响应错误的一种机制,能够有效的处理异常,并使得异常成为程序员中的一部分,能够更有力的增强程序鲁棒性更易于调试
发生异常的原因有很多
1、用户输入了非法数据
2、要找的文件不存在
3、网络通信中断
4、JVM溢出
出现错误后,会终止程序生命周期执行,此时引入异常后,能够保证程序不会终止,并且还能够把错误信息进行反馈
继承体系
Throwable
:所有异常的基类。Error
:表示系统错误或资源耗尽等不可恢复的错误,一般不需要程序捕获。OutOfMemoryError
:表示内存耗尽的错误。
Exception
:表示一般性的异常情况,通常需要程序进行捕获和处理。RuntimeException
:表示运行时异常,如空指针引用等。NullPointerException
:空指针异常。
IOException
:表示输入输出异常。SQLException
:表示数据库访问异常。
Error
主要描述的是一些系统内部错误,比如栈内存OOM溢出
Exception
Exception是什么
一般我们把exception作为所有异常类的父类,而exception又分为两大类:
RuntimeException和非RuntimeException,运行时异常和非运行时异常(编译时异常)
运行时异常一般是由于程序员粗心导致,比如空指针、下标越界、程序员完全可以通过if判断解决问题
但是编译时异常,一般性需要我们重点学习,编译时异常是我们在编码时就要处理的,如果不处理不能运行
常用方法
Exception类和其他普通类一样,有自己的属性和 方法,为我们提供异常的相关信息。常用的方法有:
1、public String getMessage():返回关于发生的异常的详细信息。这个消息在Throw able类的构造函数中初始化了
2、public void printStackTrace():打印toString()结果和栈层次到System.err,即错误输出流
处理异常的办法
Try的四种用法
Finally
Throws的三种用法和thorw异常源点
最后的throw异常源点多搭配自定义异常使用或者调试用,即使没有异常,写了异常源点也会报异常,所以调试异常很好用
自定义异常类
自定义异常类一定要继承异常类,甚至可以继承RunableException运行时异常,可以搭配异常源点使用,常用于开发中给前端反馈信息用。