Throws une Exception / Différence ?
Bonjour à tous, ayant révisé la notion d'Exception j'ai vu que l'on pouvait appeler une classe Exception via le mot clé
throws
, mais je me suis toujours demandé quel était la différence entre appeler une classe et importer le fameux package IO.
Pour moi les 2 font la même chose et l'un comme l'autre n’empêche pas de faire un try and catch.
J'ai toujours opté pour l'import du package que l'appel de la classe dans une mthode9 Replies
Tu a un exemple de comment tu déclanche une exception avec un import ?
J'ai du mal a voir de quoi tu parle
`
bien sur c'est dans le meme fichier
Importer le package ça permet de pouvoir utiliser la classe plus tard. Ici dans le catch.
throws ExceptionX a la fin d'une fonction ça permet de dire que notre fonction est succeptible de throw une exception de classe ExceptionX.
C'est quoi ExceptionX ?
Moi j'ai toujours fonctionné à l'import des IOException sans utiliser le throws
Pourquoi toujours IOException ? Il y a plusieurs types d'exceptions
Oui je sais mais c'est pas ma question
ExceptionX = une classe d'exception, IOException est une classe d'exception, mais y'en a plein, et tu peux créer les tiennes aussi
C’est juste pour dire que tu peux remplacer par n’importe quelle classes d’exception.
L’import n’as pas la même fonction que le throws.
Le throws a pour objectif de passer l’exception a la classe appelante au lieu de la catch.
Comparer le throws et le try catch serai plus cohérent. Soit ta fonction gère l’exception en interne avec un « try catch(IOException e) », soit elle ne la gère pas et averti les fonctions qui l’utiliserons qu’elle peu throw une exception en indiquant « throws IOException »
Ok j'ai mis du temps a comprendre mais je comprends un peu maintenant ! Merci