English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Quando si lancia IllegalStateException e IllegalArgumentException in Java?

IllegalStateException:

当您在非法或不适当的时间调用方法时,会生成此异常,并生成IlleagalStateException。

例如,remove()ArrayList类的方法在调用next()或之前的方法后删除最后一个元素。

  • 在当前位置删除元素后,您需要移动到下一个元素以删除它,即,每次调用该next()metodo, si può chiamare soloremove()una volta questo metodo.

  • Poiché la posizione iniziale del puntatore della lista (puntatore) sarà prima del primo elemento, non si può chiamare questo metodo senza chiamare il metodo successivo.

Se si chiama questoremove()metodo, altrimenti solleverà un java.lang.IllegalStateException.

Esempio

Nell'esempio seguente, proviamo a utilizzareremove()Il metodo elimina l'elemento dell'ArrayList e poi si sposta al primo elemento

import java.util.ArrayList;
import java.util.ListIterator;
public class NextElementExample{
   public static void main(String args[]) {}}
      //Istanzia l'oggetto ArrayList
      ArrayList<String> list = new ArrayList<String>();
      //Riempi l'ArrayList-
      list.add("apples");
      list.add("mangoes");
      //Ottieni l'oggetto Iterator dell'ArrayList
      ListIterator<String> it = list.listIterator();
      //Elimina l'elemento senza muoversi alla prima posizione
      it.remove();
   }
}

Eccezione in esecuzione

Exception in thread "main" java.lang.IllegalStateException
   at java.util.ArrayList$Itr.remove(Unknown Source)
   at MyPackage.NextElementExample.main(NextElementExample.java:17)

IllegalArgumentException-每当您向方法或 costruttore passate un parametro inappropriato, viene sollevato un IllegalArgumentException.

Esempio

valueOf()La classe java.sql.Date accetta una stringa di data in formato di escape JDBC yyyy- [m] m- [d] dove d rappresenta la data e la converte in un oggetto java.sql.Date. Tuttavia, se viene passata una stringa di data in qualsiasi altro formato, questo metodo solleva un IllegalArgumentException.

import java.sql.Date;
import java.util.Scanner;
public class IllegalArgumentExample {
   public static void main(String args[]) {}}
      Scanner sc = new Scanner(System.in);
      System.out.println("Inserisci la tua data di nascita nel formato di escape JDBC (yyyy-mm-dd) ");
      String dateString = sc.next();
      Date date = Date.valueOf(dateString);
      System.out.println("Data fornita convertita in oggetto int: " + date);
   }
}

Eccezione in esecuzione

Inserisci la tua data di nascita nel formato di escape JDBC (yyyy-mm-dd)
26-07-1989
Exception in thread "main" java.lang.IllegalArgumentException
   at java.sql.Date.valueOf(Unknown Source)
   at july_ipoindi.NextElementExample.main(NextElementExample.java:11)
Ti potrebbe interessare