扰乱程序正常流程的意外的、不需要的事件称为事件例外.
大多数情况下,异常是由我们的程序引起的,并且这些异常是可以恢复的。示例:如果我们的程序要求是从位于美国的远程文件读取数据。在运行时,如果远程文件不可用,那么我们将得到RuntimeException,表示 fileNotFoundException。如果发生 fileNotFoundException,我们可以向程序提供本地文件以正常读取并继续程序的其余部分。
主要有 两种类型java中的异常处理如下:
1.检查异常:
编译器在运行时为了程序的顺利执行而检查的异常称为检查异常。在我们的程序中,如果有可能出现检查异常,那么我们必须处理该检查异常(通过 try-catch 或 throws 关键字),否则我们将得到编译时错误;
检查异常的示例是ClassNotFoundException, IOException, SQLException, 等等。
2.未经检查的异常:
编译器未检查的异常,无论程序员是否处理此类异常,都称为未经检查的异常。
未经检查的异常的示例是算术异常,ArrayStoreException等等。
Whether the exception is checked or unchecked every exception occurs at run time only if there is no chance of occurring any exception at compile time.
ArrayIndexOutOfBoundException:ArrayIndexOutOfBoundException 是 RuntimeException 的子类,因此它是未经检查的异常。每当我们使用负值或大于或等于给定数组长度的值作为数组的索引时,JVM 都会自动引发此异常,我们将得到此异常。
示例:
Java
// Java program to demonstrate the
// ArrayIndexOutOfBoundException
// import the required package
import java.io.*;
import java.lang.*;
import java.util.*;
// driver class
class GFG {
// main method
public static void main(String[] args)
{
// declaring and initializing an array of length 4
int[] x = { 1, 2, 3, 4 };
// accessing the element at 0 index
System.out.println(x[0]);
// accessing an index which is greater than the
// length of array
System.out.println(x[10]);
// accessing a negative index
System.out.println(x[-1]);
}
}
输出:
StringIndexOutOfBoundException:StringIndexOutOfBoundException 是 RuntimeException 的子类,因此它是未经检查的异常。每当在任何字符串类方法中使用负数或大于或等于给定字符串长度的索引值时,JVM 都会自动引发此异常。
例子:
Java
// Java program to demonstrate
// StringIndexOutOfBoundException
// import required packages
import java.io.*;
import java.util.*;
// driver class
class GFG {
// main class
public static void main(String[] args)
{
// declaring a string
String s = "GEEKSFORGEEKS";
// accessing the second character of the given
// string using charAt() method
System.out.println(s.charAt(1));
// now using an index greater than the length of the
// string
System.out.println(s.charAt(30));
}
}
输出:
ArrayIndexOutOfBoundException | StringIndexOutOfound异常 |
---|---|
抛出该异常表示使用非法索引访问数组(即索引值为负数或大于或等于数组的长度)。 | 它由 string 类的方法抛出,指示 string 方法中使用的索引值为负数或大于或等于给定字符串的长度。 |
相关用法
- Java String compareToIgnoreCase()用法及代码示例
- Java String compareTo()用法及代码示例
- Java String split()用法及代码示例
- Java String length()用法及代码示例
- Java String replace()用法及代码示例
- Java String replaceAll()用法及代码示例
- Java String substring()用法及代码示例
- Java String equals()用法及代码示例
- Java String equalsIgnoreCase()用法及代码示例
- Java String contains()用法及代码示例
- Java String indexOf()用法及代码示例
- Java String trim()用法及代码示例
- Java String charAt()用法及代码示例
- Java String toLowerCase()用法及代码示例
- Java String concat()用法及代码示例
- Java String valueOf()用法及代码示例
- Java String matches()用法及代码示例
- Java String startsWith()用法及代码示例
- Java String endsWith()用法及代码示例
- Java String isEmpty()用法及代码示例
- Java String intern()用法及代码示例
- Java String getBytes()用法及代码示例
- Java String contentEquals()用法及代码示例
- Java String hashCode()用法及代码示例
- Java String join()用法及代码示例
注:本文由纯净天空筛选整理自mroshanmishra0072大神的英文原创作品 Difference Between StringIndexOutOfBoundsException and ArrayIndexOutOfBoundsException in Java。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。