• 教程信息
所属学科: JAVA基础
浏览次数: (362)
发布于:

JAVA中的Exception与Error

Exception类是Java中的异常类,它继承了java.lang.Throwable类;Error也继承了java.lang.Throwable类,二者的本质区别就是Exception是可挽回的,而Error则是fatal的,说白了就是Exception是可以try catch的,比如:NullPointerException空指针异常;而Error是程序没有办法处理的,最典型的Error就是OutOfMemoryError内存溢出。


异常(Exception)的分类:

Java中的异常分为两类:编译异常、运行时异常。运行时异常的父类是RuntimeException。简单的说:编译异常是程序中必须去处理的,不处理就会编译错误,要么try catch,要么throw出去(当然throw到外面一层还是需要进一步处理的);而运行时异常程序不显示地去处理也不会出现编译错误,但这并不是说不需要处理,相反程序的质量往往就是决定于这些运行时异常的处理。


几个常见的异常介绍:

1、java.lang.ArrayIndexOutOfBoundsException 数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。

2、java.lang.ArithmeticException 算术条件异常。譬如:整数除零等。

3、java.lang.NullPointerException 空指针异常。当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出null等等

4、java.lang.ClassNotFoundException 找不到类异常。当应用试图根据字符串形式的类名构造类,而在遍历CLASSPAH之后找不到对应名称的class文件时,抛出该异常


   上面几个都是运行时异常,Java中比较典型的编译异常是IO操作的异常,文件流操作本身会存在潜在的问题与风险,是与你的代码无关的,Java会强制要求在代码里作出预期处理。


几个常见的错误介绍:

OutOfMemoryError和StackOverflowError。它们都是java.lang包下VirtualMachineError的子类。前者在Java 虚拟机因内存溢出或没有可用的内存提供给垃圾回收器而无法分配一个对象时抛出;后者是当应用程序递归太深而发生堆栈溢出时抛出。

  • 课后习题(3)
  • 评论(0)
emotions 
分享
  • 发布人
程序猿
下载手机APP,做题更方便!