在大家编写代码的过程中,肯定遇到过在console中弹出红色提示,当我们刚刚学习java时候,一看到程序报错就一头包,自己辛辛苦苦写的代码却没有成功的运行,这就是我们遇到的程序异常。
遇到异常其实并不可怕,可能还是在帮你。当提示你的时候还能知晓异常时如何处理,代码在哪里遇到了问题,所以当发生异常时不要自己慌了手脚,需要冷静的处理和解决所有遇到的异常,这篇文章就代大家了解一下java中的异常。
java的异常,我们往往说的是Exception,因为这是我们能处理到的,但异常的顶层父类是Throwable,Throwable又派生出了Error和Exception。下面是java中异常介绍图。
这里我们简单的介绍下:
- Error:Error类以及他的子类的实例,代表了JVM本身的错误。错误不能被程序员通过代码处理,Error很少出现。
- Exception:Exception以及他的子类,代表程序运行时发送的各种不期望发生的事件。可以被Java异常处理机制使用,是异常处理的核心。Exception分为两类,运行时异常(RuntimeException)和编译时异常(IOException)
- RuntimeException:RuntimeException类极其子类表示JVM在运行期间可能出现的错误。比如说试图使用空值对象的引用(NullPointerException)、数组下标越界(ArrayIndexOutBoundException)。此类异常属于不可查异常,一般是由程序逻辑错误引起的,在程序中可以选择捕获处理,也可以不处理。
- IOException:Exception中除RuntimeException极其子类之外的异常。如果程序中出现此类异常,必须对该异常进行处理,否则编译不通过。在程序中,通常不会自定义该类异常,而是直接使用系统提供的异常类。
下面展示几个常见的Exception:
ArrayIndexOutOfBoundsException:
public class Test {
public static void main(String[] args) {
String[] str = {"1","2"};
System.out.println(str[2]);
}
}
NullPointerException:
public class Test {
public static void main(String[] args) {
String[] str = {"1",null};
System.out.println(str[1].length());
}
}
ClassCastException:
public class Test {
public static void main(String[] args) {
Animal dog = new Dog();
Person person = (Person)dog;
}
}
NumberFormatException:
public class Test {
public static void main(String[] args) {
String[] str = {"abc",null};
int num = Integer.parseInt(str[0]);
}
}
在此我们初次学习了异常的一些出现情况,在后一段异常文章中将介绍捕获异常与抛出异常两种处理异常的方式。