當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Java StringIndexOutOfBoundsException和ArrayIndexOutOfBoundsException的區別用法及代碼示例


擾亂程序正常流程的意外的、不需要的事件稱為事件例外.

大多數情況下,異常是由我們的程序引起的,並且這些異常是可以恢複的。示例:如果我們的程序要求是從位於美國的遠程文件讀取數據。在運行時,如果遠程文件不可用,那麽我們將得到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.

ArrayIndexOutOfBoundExceptionArrayIndexOutOfBoundException 是 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 方法中使用的索引值為負數或大於或等於給定字符串的長度。


相關用法


注:本文由純淨天空篩選整理自mroshanmishra0072大神的英文原創作品 Difference Between StringIndexOutOfBoundsException and ArrayIndexOutOfBoundsException in Java。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。