Imaginez que vous jouez à un jeu et que tout à coup, votre personnage tombe dans un gouffre. Que feriez-vous? Vous redémarreriez probablement le jeu ou trouveriez un moyen d’éviter la fosse la prochaine fois. En programmation, quelque chose de similaire peut se produire : votre code peut tomber dans un « gouffre » appelé exception. Lorsque cela se produit, le programme peut cesser de fonctionner ou faire quelque chose d'inattendu.
Une exception est comme un signal indiquant que quelque chose s'est mal passé pendant l'exécution de votre code. Peut-être avez-vous essayé de diviser un nombre par zéro (ce qui n’est pas autorisé), ou peut-être avez-vous essayé d’ouvrir un fichier qui n’existe pas. Lorsque ces problèmes apparaissent, Java lève un drapeau et dit : "Hé ! Il y a un problème ici !"
Si nous ne gérons pas les exceptions, le programme peut planter et toute la progression est perdue, tout comme lorsque vous ne sauvegardez pas votre partie et que l'ordinateur s'éteint soudainement.
Voyons un exemple :
public class BasicExample { public static void main(String[] args) { int number = 10; int result = number / 0; // This will cause an exception! System.out.println("Result: " + result); // This line will never be reached. } }
Lorsque vous essayez d'exécuter ce code, il s'arrêtera et se plaindra en disant : "Vous ne pouvez pas diviser par zéro !"
Pour éviter ce problème, Java nous propose quelque chose appelé try and catch.
public class BasicExample { public static void main(String[] args) { int number = 10; try { int result = number / 0; // We know this might cause a problem. System.out.println("Result: " + result); } catch (ArithmeticException e) { System.out.println("Oops! You can’t divide by zero."); } } }
Voici ce qui se passe maintenant :
Maintenant que vous savez comment intercepter une exception, vous vous demandez peut-être : « Et si mon code pouvait rencontrer différents types de problèmes ? Comment puis-je tous les intercepter ? »
Imaginez que vous essayez d'ouvrir un coffre au trésor dans un jeu. Parfois, la clé ne rentre pas (c’est un problème), et d’autres fois, le coffre est vide (c’est un autre problème). Vous voudriez savoir exactement ce qui n’a pas fonctionné, n’est-ce pas ?
En Java, il existe différents types de problèmes, ou exceptions. Par exemple :
Voyons comment détecter différents types de problèmes dans votre code :
public class MultipleExceptionsExample { public static void main(String[] args) { try { int[] numbers = {1, 2, 3}; System.out.println(numbers[5]); // This will cause an ArrayIndexOutOfBoundsException! } catch (ArrayIndexOutOfBoundsException e) { System.out.println("Oops! You tried to access an index that doesn’t exist."); } catch (ArithmeticException e) { System.out.println("Oops! You can’t divide by zero."); } } }
Voici ce qui se passe :
Parfois, vous ne savez peut-être pas ce qui pourrait mal se passer, mais vous voulez quand même détecter tout problème. Vous pouvez utiliser une exception générale pour détecter tout ce qui ne va pas :
public class GeneralExceptionExample { public static void main(String[] args) { try { int result = 10 / 0; // This will cause an ArithmeticException! } catch (Exception e) { System.out.println("Oops! Something went wrong."); } } }
De cette façon, si quelque chose ne va pas, le bloc catch le gérera toujours et votre programme ne plantera pas.
Imaginez que vous jouez à un jeu et que vous trouvez un trésor, mais que vous réussissiez ou non, vous voulez toujours fermer le coffre au trésor lorsque vous avez terminé. En Java, le bloc final revient à s'assurer que le coffre au trésor est toujours fermé, quoi qu'il arrive.
Le bloc final est un morceau de code qui s'exécute toujours, qu'une exception se produise ou non. Il est utilisé pour faire le ménage, comme fermer un dossier, arrêter un minuteur ou ranger le coffre au trésor.
public class FinallyExample { public static void main(String[] args) { try { int result = 10 / 0; // This will cause an exception. } catch (ArithmeticException e) { System.out.println("Oops! You can’t divide by zero."); } finally { System.out.println("This will always run, no matter what."); } } }
Voici ce qui se passe :
Sometimes, the problems you face in your code are special. Maybe the game doesn’t just have treasure chests, but also magical doors that can sometimes be locked. You might want to create a special exception for when the door is locked.
You can create your own exceptions by making a new class that extends Exception. Let’s create an exception called LockedDoorException:
class LockedDoorException extends Exception { public LockedDoorException(String message) { super(message); } } public class CustomExceptionExample { public static void main(String[] args) { try { openDoor(false); } catch (LockedDoorException e) { System.out.println(e.getMessage()); } } private static void openDoor(boolean hasKey) throws LockedDoorException { if (!hasKey) { throw new LockedDoorException("The door is locked! You need a key."); } System.out.println("The door is open!"); } }
Here’s how it works:
In this post, we’ve learned that:
try and catch blocks help us handle these problems, so our program doesn’t crash.
Different types of exceptions are like different kinds of problems.
We can catch multiple exceptions to handle specific problems.
We can also catch any exception using the general Exception type.
The finally block is used to clean up, and it always runs no matter what.
You can create custom exceptions to handle special problems in your code.
And that it! Now you’re ready to handle any problem that comes your way in your code. If you have any questions, feel free to ask!
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!