Java >> Tutoriel Java >  >> Java

Gestion de plusieurs clauses catch en Java

Jusqu'à présent, nous avons vu comment utiliser un seul bloc catch, nous allons maintenant voir comment utiliser plusieurs blocs catch dans un seul bloc try.

En Java, lorsque nous gérons plus d'une exception dans un seul bloc try {}, nous pouvons utiliser plusieurs blocs catch pour gérer de nombreux types d'exceptions différentes pouvant être générées lors de l'exécution du programme. Cependant, chaque bloc catch ne peut gérer qu'un seul type d'exception. Ce mécanisme est nécessaire lorsque le bloc try contient une instruction qui déclenche différents types d'exceptions.

La syntaxe pour utiliser plusieurs clauses catch est donnée ci-dessous :

try{
	???
	???
}
catch(<exceptionclass_1><obj1>){
	//statements to handle the
	exception
}
catch(<exceptionclass_2><obj2>){
	//statements to handle the
	exception
}
catch(<exceptionclass_N><objN>){
	//statements to handle the
	exception 
}

Lorsqu'une exception est levée, l'exécution normale est suspendue. Le système d'exécution procède à la recherche d'un catch correspondant bloc qui peut gérer l'exception. Si aucun gestionnaire n'est trouvé, l'exception est traitée par le gestionnaire d'exceptions par défaut au niveau supérieur.

Voyons un exemple ci-dessous qui montre l'implémentation de plusieurs blocs catch pour un seul bloc try.

public class Multi_Catch
{
	public static void main(String args[])
	{
		int array[]={20,10,30};
		int num1=15,num2=0;
		int res=0;

		try
		{
			res = num1/num2;
			System.out.println("The result is" +res);
			for(int ct =2;ct >=0; ct--)
			{
				System.out.println("The value of array are" +array[ct]);
			}
		}
		catch (ArrayIndexOutOfBoundsException e)
		{
			System.out.println("Error?. Array is out of Bounds");
		}
		catch (ArithmeticException e)
		{
			System.out.println ("Can't be divided by Zero");
		} 
	} 
}

Dans cet exemple, ArrayIndexOutOfBoundsExceptionet ArithmeticExceptionare deux clauses catch que nous avons utilisées pour intercepter l'exception dans lesquelles les instructions susceptibles de provoquer une exception sont conservées dans le bloc try. Lorsque le programme est exécuté, une exception sera levée. Maintenant que le premier bloc catch est ignoré et que le deuxième bloc catch gère l'erreur.


Balise Java