处理运行时异常的Java程序
RuntimeException是Java VM(虚拟机)正常运行过程中抛出异常的所有类的超类。 RuntimeException 及其子类是未经检查的异常。最常见的异常是 NullPointerException、ArrayIndexOutOfBoundsException、 ClassCastException 、InvalidArgumentException 等。
- NullPointerException是 JVM 在程序尝试调用 null 对象的方法或对 null 对象执行其他操作时抛出的异常。用户不应该尝试处理这种异常,因为它只会修补问题而不是完全修复它。
- ArrayIndexOutOfBoundsException是当程序错误地尝试访问不存在的集合中的某个位置时由JRE (Java运行时环境)自动抛出的异常。当请求的数组索引为负数或大于或等于数组大小时,通常会发生这种情况。 Java的数组使用从零开始的索引;因此,该数组的第一个元素的索引为零,最后一个元素的索引大小为 1,第 n 个元素的索引为 n-1。
- InvalidArgumentException是在将无效参数传递给服务器引用的连接上的某个方法时引发的异常。
示例 1:
Java
// Create public class
public class GFG {
public void GreeksForGreeks()
{
// throw exception
throw new Greeks();
}
public static void main(String[] args)
{
try {
new GFG().GreeksForGreeks();
}
// catch exception
catch (Exception x) {
System.out.println(
"example of runtime exception");
}
}
}
// create subclass and extend RuntimeException class
class Greeks extends RuntimeException {
// create constructor of this class
public Greeks()
{
super();
}
}
Java
class GFG {
public static void main(String[] args)
{
// create array of 5 size
int[] a = new int[] { 1, 2, 3, 4, 5 };
// execute for loop
for (int i = 0; i < 6; i++) {
// print the value of array
System.out.println(a[i]);
}
}
}
输出
example of runtime exception
现在让我们创建一个更常见的运行时异常示例,称为ArrayIndexOutOfBoundsException 。当我们想要访问大于其大小的数组时会发生此异常,例如我们有一个大小为 5 的数组,array[5],并且我们想要访问 array[6]。这是一个 ArrayIndexOutOfBoundsException,因为此数组中不存在 6 个索引。
示例 2:
Java
class GFG {
public static void main(String[] args)
{
// create array of 5 size
int[] a = new int[] { 1, 2, 3, 4, 5 };
// execute for loop
for (int i = 0; i < 6; i++) {
// print the value of array
System.out.println(a[i]);
}
}
}
输出
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
at GFG.main(File.java:10)