异常概念&异常体系和异常分类
异常概念&异常体系
异常,就是不正常的意思。在程序执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。
在java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象。
Java处理异常的方式是中断处理
异常体系:
异常机制其实是帮助我们找到程序中的问题,异常的根类是Throwable,其下有两个子类:
Error与Exception,平常所说的异常值Exception。(Throwable是最顶层的类有两个子类Error和Exception)
Throwable体系:
>Error:严重错误Error,无法通过处理的错误,只能事先避免,好比绝症。
>Exception:表示异常,异常产生后程序员可以通过代码的方式纠正,使程序继续运行, 是必须要处理的。
printStackTrace():打印异常的详细信息。
包含了异常的类型,异常的原因,还包括异常出现的位置,在开发和调式阶段,都得使用printStackTrace。
getNessage():获取发生异常的原因。
提示给用户的时候,就提示错误原因。
toString() : 获取异常的类型和异常描述信息(不用)。
异常分类
java.lang.Throwable:类是Java语言中所有错误或异常的超类。
Exception:编译期异常,进行编译(写代码)java程序出现的问题
RuntimeException:运行期异常,java程序运行过程中出现的问题
异常就相当于程序得到了一个小毛病(感冒, 发烧),把异常处理掉,程序可以继续执行
Error:错误
错误就相当于程序得到了一个无法治愈的毛病,必须修改源代码,程序才能继续执行
给虚拟机处理异常,中断处理
public static void main(String[] args) throws ParseException { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = sdf.parse("1999-0909"); System.out.println(date); }
编译异常把异常处理后,后续代码可以继续执行
public static void main(String[] args) /*throws ParseException*/ { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date = null; try { date = sdf.parse("1999-0909"); } catch (ParseException e) { e.printStackTrace(); } System.out.println(date); System.out.println("==das=="); }
运行期间异常
int[] arr={1,2,3}; System.out.println(arr[3]);
进行处理
public static void main(String[] args){ int[] arr = new int[]{1,2,3}; try { System.out.println(arr[3]); } catch (Exception e) { System.out.println(e); } System.out.println("==...=="); }
Error错误
内存溢出错误,创建的数组太大,超出给JVM分配的内存