Java作为一种面向对象的编程语言,异常处理是其中重要的一部分。在Java中,异常简单来说就是程序在运行时发生了错误或出现了异常情况,这个错误或异常情况我们也称之为"抛出"了一个异常。Java异常处理机制是Java语言特色之一,也是Java编程中必须学会的一个内容。
Java的异常可分为两类,一类是Checked Exception(检查性异常),另一类是Unchecked Exception(运行时异常)。
public class CheckedDemo {
public static void main(String[] args) {
try {
FileReader file = new FileReader("text.txt");
} catch (FileNotFoundException e) {
System.out.println("File not found.");
}
}
}
这里的FileNotFoundException就是一种Checked Exception,即在编译期已经确定的异常,如果不处理这种异常,程序将无法编译通过。
而运行时异常则是一些可能在程序运行过程中出现的异常情况,比如空指针异常(NullPointerException)或数组越界异常(ArrayIndexOutOfBoundsException)等等:
public class UncheckedDemo {
public static void main(String[] args) {
int arr[] = {1, 2, 3, 4};
System.out.println(arr[4]);
}
}
这里的ArrayIndexOutOfBoundsException就是一种Unchecked Exception。
处理异常的机制主要有两种,一种是使用try-catch语句块来捕获异常,另一种是使用throws关键字将异常抛出去:
public class HandleDemo {
public static void main(String[] args) {
int arr[] = {1, 2, 3, 4};
try {
System.out.println(arr[4]);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Array index out of bounds.");
}
}
}
在上面的代码中,我们使用了try-catch语句块来捕获了异常,当出现数组越界异常的时候,程序将会抛出"Array index out of bounds."信息。
而throws关键字则是用来把异常抛给上一级,由调用者来处理异常:
public class ThrowsDemo {
public static void main(String[] args) throws Exception {
int i = 10 / 0;
System.out.println("Result: " + i);
}
}
在上面的代码中,我们故意制造了一个运行时异常,即除以0的异常,在这里我们没有使用try-catch语句块捕获异常,而是使用throws关键字抛出这个异常给上一级。而上一级就是这个main方法的调用者,它将会在调用的时候得到这个异常。
总之,在Java中,异常处理是每个Java程序员必须要学习、掌握的基础知识之一。不同类型的异常需要不同的处理方式,使用try-catch和throws关键字等控制语句可以有效的控制异常的发生及异常信息的输出,从而保证程序的稳定性和可靠性。