java语言中,将程序执行中发生的不正常情况称为异常(语法和逻辑错误不算异常)
异常可以分为两类
1、Error:java虚拟机无法解决的严重问题(如JVM系统错误、资源耗尽等等)
栈溢出:StackOverflowError 堆溢出:OutOfMemoryError
2、Exception:其他因编程错误导致的一般性问题,可以使用针对性的代码进行处理{
1、空指针访问
2、试图读取不存在的文件
3、网络连接中断
4、数组决标越界}
遇到这些错误:
{一种是一遇到错误就终止程序运行
另一种是在编写程序时,就考虑到错误的检测,错误的提示,以及错误的处理
}
捕获错误的最理想时间是编译期间,但有的错误只会在运行时才发生
java.lang.Throwable-->子类{
java.lang.Error:一般不编写针对性的代码进行处理。
java.lang.Exception:可以进行异常的处理——>分为两类
编译时异常(checked异常,受检异常)--》IOException、ClassNotFoundException......
运行时异常(unchecked异常,非受检异常)-->NullPointerException、ArrayIndexOutOfBoundsException......
}