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 mthode
9 Replies
hydrolien
hydrolien4mo ago
Tu a un exemple de comment tu déclanche une exception avec un import ? J'ai du mal a voir de quoi tu parle
NoSung
NoSung4mo ago
import java.io.IOException;
import java.io.IOException;
try{
tile[index] = new Tile();
tile[index].image = ImageIO.read(getClass().getResourceAsStream("/tiles/" + imageName + ".png"));
tile[index].image = uTool.scaleImage(tile[index].image, gp.tileSize, gp.tileSize);
tile[index]. collision = collision;
}catch(IOException e){
e.printStackTrace();
}
try{
tile[index] = new Tile();
tile[index].image = ImageIO.read(getClass().getResourceAsStream("/tiles/" + imageName + ".png"));
tile[index].image = uTool.scaleImage(tile[index].image, gp.tileSize, gp.tileSize);
tile[index]. collision = collision;
}catch(IOException e){
e.printStackTrace();
}
` bien sur c'est dans le meme fichier
hydrolien
hydrolien4mo ago
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.
NoSung
NoSung4mo ago
C'est quoi ExceptionX ? Moi j'ai toujours fonctionné à l'import des IOException sans utiliser le throws
Ayfri
Ayfri4mo ago
Pourquoi toujours IOException ? Il y a plusieurs types d'exceptions
NoSung
NoSung4mo ago
Oui je sais mais c'est pas ma question
Ayfri
Ayfri4mo ago
ExceptionX = une classe d'exception, IOException est une classe d'exception, mais y'en a plein, et tu peux créer les tiennes aussi
hydrolien
hydrolien4mo ago
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 »
NoSung
NoSung4mo ago
Ok j'ai mis du temps a comprendre mais je comprends un peu maintenant ! Merci
Want results from more Discord servers?
Add your server