Différence entre Throw et Throws
Quelle est la différence entre Throw et Throws en java ? – Le mot clé Throw dans java est utilisé pour lancer une exception de manière explicite et il est principalement utilisé pour lancer une exception personnalisée. La clause Throws est utilisée pour déclarer une exception, ce qui signifie qu’elle fonctionne de manière similaire au bloc try-catch.
Définition de Throw
Lorsque on souhaite explicitement lancer une exception, on utilise le mot-clé throw. Le mot clé throw est suivi d’un objet de la classe d’exception qu’on souhaite lancer ici c’est ArithmeticException.
Par exemple:
throw new ArithmeticException("Arithmetic Exception");
Définition de Throws
Lorsqu’on ne veut pas gérer une ou plusieurs exceptions avec un bloc try-catch dans une méthode, on doit utiliser le mot clé throws dans sa signature comme ci-dessous.
// signature de la méthode public void maMethod() throws IOException { ... }
Différences clés entre Throw et Throws
- Le mot-clé throw est utilisé pour générer une exception explicitement à partir de n’importe quelle méthode ou d’un bloc statique, alors que le mot-clé throws est utilisé dans la déclaration de méthode, indiquant quelle exception peut être levée par cette méthode.
- throw est suivi d’une instance alors que throws est suivi du nom de la classe d’exception.
- throw est utilisé dans la méthode, tandis que throws est utilisé dans la signature du méthode.
- Vous ne pouvez pas lancer plusieurs exceptions en utilisant throw, mais vous pouvez déclarer plusieurs exceptions en utilisant throws, par exemple.
public void method() throws IOException, SQLException{}
- Le mot clé throws est utilisé pour créer une exception à propager explicitement à la méthode parent (méthode caller) mais lorsque nous utilisons le mot clé throw et lançons l’exception, il n’est pas nécessaire que cette exception soit propagée. Il peut se propager s’il s’agit d’une exception non contrôlée et qu’il ne peut pas se propager s’il s’agit d’une exception vérifiée.
- le mot clé throws ne doit pas nécessairement être utilisé pour une exception non vérifiée afin de le propager à la méthode parent, car il peut être propagé par défaut, mais doit être utilisé pour gérer les exceptions dans la méthode parent. ne peut pas être propagé par défaut.
- En utilisant le mot-clé throw, vous pouvez également casser une instruction switch ou une boucle sans utiliser le mot-clé break qui ne peut pas être exécuté à l’aide de throws, par exemple :
int number = 10; switch(nbr){ case 1: throw new RuntimeException("Exception number 1"); case 2: throw new RuntimeException("Exception number 2"); }
Conclusion
Throw et Throws, les deux sont utilisées pour lancer des exceptions, la différence clé entre les deux, est que Throws est utilisé dans la signature d’une méthode pour spécifie au compilateur que la méthode peut générer une exception. L’instruction Throw utilisée pour lever une exception.