CodeGym /Blog Java /Random-FR /Ancien niveau 09
John Squirrels
Niveau 41
San Francisco

Ancien niveau 09

Publié dans le groupe Random-FR

Connaissances vs Compétences

Ancien niveau 09 - 1Le collège nous a appris qu'il n'y a pas de grande différence entre la théorie et la pratique. Eh bien, vous comprenez sûrement que ce n'est pas la même chose. Mais vous ne voyez pas la différence fondamentale. Pourtant il y en a un. La plupart des gens placent le signe d'égalité entre "je sais" et "je peux". Est-ce que tu? Que diriez-vous de quelques exemples ?
  1. Je sais que fumer est mauvais pour moi, mais je fume.
  2. Je sais que le fast-food est mauvais pour moi, mais j'en mange.
  3. Je connais le code de la route mais je ne sais pas conduire.
  4. Je sais que le jogging est bon pour moi mais je ne fais pas de jogging le matin.
Il arrive souvent que les gens prennent « je sais » pour « je peux ». C'est un bon exemple avec le code de la route. Si une personne connaît les règlements et sait conduire, cela signifie-t-il qu'elle peut conduire ? Non. Et s'il pense qu'il sait conduire ? Alors pourquoi aurait-il besoin d'un instructeur – il sait déjà tout. Lorsque vous êtes sûr de tout savoir déjà, vous n'apprendrez probablement rien de nouveau. Et si vous êtes sûr de savoir tout faire, vous n'étudierez pas. Une telle pensée ne vous traversera même pas l'esprit. Et cela signifie que vous manquerez toutes les merveilleuses occasions d'apprendre quelque chose. Le collège habituel ne vous donne que des connaissances; vous devrez acquérir des compétences par vous-même. Mais qu'est-ce que j'entends ? Vous avez eu de la pratique en plus de la théorie dans votre collège ? Ok, si vous avez étudié à la faculté de physique, fabriquez un modèle de travail d'une machine à vapeur avec un rendement d'au moins 20%. Je parie que vous savez comment le faire, mais vous ne serez pas capable de le faire, n'est-ce pas ? Vous êtes chimiste ? Faire de la poudre sans fumée. Tu sais comment, mais tu ne peux pas, ha ? Mathématicien, êtes-vous? Calculer la trajectoire d'un obus d'artillerie. N'oubliez pas de prendre en compte la forme de la coque. Les points mathématiques ne volent pas dans la vraie vie. Et il n'y a pas de chevaux sphériques. Ancien niveau 09 - 2Biologiste? Isoler la pénicilline. Cette moisissure pousse sur les melons, alors vous savez. Vous savez comment - merveilleux! Pouvez-vous le faire? Économiste?Faites une prévision de la croissance des prix du pétrole. Fait? Et maintenant, transformez-le en 2 000 $ ou 200 000 $ par an en fonction de vos prévisions. Avez-vous déjà joué sur le FOREX ? Pour de l'argent réel ? Ou tu sais juste ce que c'est ? L'économie internationale? Splendide! Où ouvrir une société offshore ? A Hong-Cong, en Irlande ou aux USA. Pourquoi? Même si vous savez cela, ce qui est douteux, vous ne pourrez guère le faire, puisque vous ne l'avez jamais fait. Vous n'avez même pas la moindre idée de comment le faire. Oh, tu n'as pas étudié ça à l'université ? De quel droit ai-je le droit de vous confier des tâches auxquelles vous n'êtes pas préparé ? Parce que ce sont les tâches de la vraie vie. Cette pratique IS , tout ce que vous avez étudié à l'université, c'est : les chevaux sphériques, la compétition parfaite - rien de tout cela n'existe dans la vraie vie. Mais pourquoi ai-je oublié de mentionnerspécialiste du marketing ? Quelle est la meilleure façon de dépenser mes 500 $ pour que le plus de gens possible soient au courant de mes conférences ? Sur publicité ? Savez-vous que non seulement la publicité classique est déjà dépassée, mais aussi le concept d'USP (unique selling proposition), dont je suis sûr qu'on vous a enseigné à l'université comme une panacée presque unique. Oubliez que vous savez quoi que ce soit. Demandez-vous – que puis-je faire ? Utile, je veux dire ? Quelque chose pour lequel les gens paieraient de l'argent? Bon argent, je veux dire? Alors mes amis, exprimons notre gratitude à un cours aussi merveilleux que CodeGym. Grâce à cela, vous saurez non seulement comment programmer, mais vous serez réellement capable de le faire. Vous pourrez également trouver un emploi et gagner beaucoup d'argent dans quelques années. J'espère que cet argent suffira pour vivre agréablement et confortablement. Je le répète, pour que vous vous en souveniez : peu importe ce que vous savez. La seule chose qui compte, ce sont les compétences utiles que vous possédez, celles que les gens seraient prêts à vous payer. Plus tôt vous comprendrez cela, mieux ce sera.

Vous avez atteint un nouveau niveau

Niveau 9

Ancien niveau 09 - 3

1 Risha, trace de pile

Ancien niveau 09 - 4- Hé! Aujourd'hui, je vais vous dire quelle est la trace de la pile. Mais laissez-moi d'abord vous expliquer ce qu'est la pile. - Imaginez une pile de papiers - des devoirs pour un certain greffier. Une nouvelle affectation peut être placée en haut de la pile, et il prendra une affectation du haut d'une pile. Ainsi, les devoirs ne se feront pas selon le principe du premier arrivé. Chaque fois que le greffier prend la tâche qui vient en dernier. Une telle structure de collection s'appelle une pile . - En Java, il existe une collection spéciale - Stack. Cette collection a des méthodes « ajouter un élément » et « prendre (obtenir/enlever) un élément ». Comme vous le savez déjà, le dernier élément ajouté sera pris en premier. - Hum. Ce n'est pas difficile, je suppose. - Bien. Alors laissez-moi vous expliquer ce qu'est une trace de pileest. - Imaginez qu'en Java la fonction À appelle la fonction B , et cette dernière appelle la fonction C , qui, à son tour, appelle la fonction D . Donc, pour quitter la fonction B , vous devez d'abord quitter la fonction C , et pour ce faire, vous devez quitter la fonction D . Ceci est très similaire à une pile. - Et quelle est la similitude? - Dans la pile, pour arriver à une certaine mission, vous devez également terminer toutes les missions mises en haut. - Eh bien, c'est un peu une analogie, mais je ne suis pas sûr d'avoir bien tout compris. - Regardez ici. En Java, une pile est un ensemble d'éléments. C'est comme des feuilles de papier dans une pile. Pour prendre la troisième à partir du haut, vous devez prendre la deuxième feuille, mais avant cela, vous devez prendre la première. Vous pouvez toujours mettre et prendre des feuilles, mais vous ne pouvez les mettre que sur le dessus et ne prendre que par le haut. Il en va de même pour l'appel de fonction. La fonction À appelle la fonction B , cette dernière appelle la fonction C . Pour quitter À , vous devez d'abord quitter B , et pour ce faire, vous devez quitter C . - Attendez une minute. Si j'ai bien compris, la pile entière s'avère en "seule la dernière feuille qui a été placée sur la pile peut être prise" et "d'abord, la dernière fonction appelée doit sortir". Est-ce vrai? - Oui. Ainsi, la séquence d'appels de fonction est la «pile d'appel de fonction», ou simplement «pile d'appel». La fonction appelée en dernier doit être terminée en premier. Prenons l'exemple : Ancien niveau 09 - 5- OK. Tout est clair avec l'appel de fonction, je suppose. Mais qu'est-ce que ce StackTraceElement ? - La machine virtuelle Java enregistre tous les appels de fonction. A cet effet, il dispose d'une collection spéciale - pile. Lorsqu'une fonction en appelle une autre, JVM place un nouvel élément StackTraceElement dans cette pile. Lorsque la fonction se termine, l'élément est supprimé de la pile. Ainsi, cette pile stocke toujours des informations à jour sur l'état actuel de la «pile d'appel de fonction». - Chaque StackTraceElementcontient des informations sur la méthode appelée. Vous pouvez donc obtenir le nom de cette méthode en utilisant le getMethodName . - L'exemple ci-dessus le montre :
  1. Récupérez la « pile d'appels » :
  2. Itérez le tableau en utilisant la boucle for-each . J'espère que vous ne l'avez pas oublié.
  3. Imprime les noms de méthode dans System.out .
- Une chose intéressante, et apparemment facile. Merci Risha !

2 Diego, Tâche sur l'affichage de la trace de la pile

- Salut Amigo ! Voici une petite tâche pour afficher à l'écran une trace de pile.
Tâches
1 Chaque méthode doit renvoyer ses
cinq méthodes StackTrace Write qui s'appellent. Chaque méthode doit renvoyer son StackTrace.
2 StackTrace à nouveau
Écrivez cinq méthodes qui s'appellent. Chaque méthode doit retourner le nom de sa méthode appelante. Vous pouvez obtenir la méthode de l'appelant à l'aide de StackTrace.
3 La méthode doit renvoyer le numéro de ligne du code à partir duquel cette méthode a été appelée
Ecrire cinq méthodes qui s'appellent. Chaque méthode doit renvoyer le numéro de ligne du code à partir duquel cette méthode a été appelée. Utilisez la fonction element.getLineNumber() .
4 Trace de pile de 10 appels
Écrivez du code pour obtenir une trace de pile de 10 appels.
5 La méthode doit renvoyer un résultat - sa profondeur de trace de pile
Écrivez une méthode qui affiche et renvoie sa profondeur de trace de pile. La profondeur de trace de la pile est le nombre de ses méthodes (le nombre d'éléments dans la liste).

3 Elly, erreurs et exceptions

- Salut Amigo ! Aujourd'hui, nous avons une leçon très intéressante. Je vais vous parler des exceptions. L'exception est un mécanisme spécial pour contrôler les erreurs dans le programme. Voici quelques exemples d'erreurs pouvant survenir dans le programme :
  1. Le programme essaie d'écrire un fichier sur le disque plein.
  2. Le programme essaie d'appeler une méthode d'une variable qui stocke la référence nulle.
  3. Le programme tente de diviser un nombre par 0.
Ces actions génèrent une erreur. Habituellement, cela conduit à la fermeture d'un programme - il ne sert à rien de continuer à exécuter le code. - Pourquoi donc? - Y a-t-il un sens à tourner le volant lorsque la voiture tombe d'une falaise ? - Voulez-vous dire que le programme devrait se terminer ? - Oui. C'était comme ça avant. Toute erreur entraînait l'arrêt d'un programme. - C'est une décision très intelligente. - Ne serait-il pas préférable d'essayer de travailler ? - Ouais. Vous avez tapé un gros texte dans MS Word, l'avez enregistré, il n'a pas été enregistré, mais le programme vous dit que tout va bien. Et vous continuez à taper. Stupide, n'est-ce pas ? - Ouais. - Ensuite, les programmeurs ont proposé une décision intéressante :chaque fonction renvoyait l'état de son travail. 0 signifiait que la fonction fonctionnait comme prévu, toute autre valeur – qu'il y avait une erreur : cette valeur était un code d'erreur. - Mais cette approche avait un inconvénient. Après chaque (!) appel de fonction, vous deviez vérifier le code (numéro) renvoyé par la fonction. Premièrement, c'était peu pratique : le code de gestion des erreurs était rarement exécuté, mais il fallait toujours l'écrire. Deuxièmement, les fonctions elles-mêmes renvoient souvent des valeurs différentes - que faire avec elles ? - Ouais. C'est ce que j'allais demander. - Puis un avenir radieux est venu - les exceptions et la gestion des erreurs étaient apparues. Voici comment cela fonctionne:
  1. Lorsqu'une erreur se produit, la machine virtuelle Java crée un objet spécial - une exception - contenant toutes les informations sur l'erreur. Pour différentes erreurs, il existe différentes exceptions.
  2. Ensuite, cette exception force le programme à interrompre immédiatement la fonction en cours, et la fonction suivante, jusqu'à ce qu'il quitte la méthode principale. Après cela, le programme se termine. Les développeurs Java appellent ce processus « annuler la pile d'appels ».
- Mais vous avez dit que le programme ne va pas se fermer à coup sûr. - C'est vrai, car il y a un moyen d'attraper l'exception. Quand et où vous en avez besoin, vous pouvez écrire un code spécial pour intercepter ces exceptions et faire quelque chose d'important. - Pour ce faire, il y a un try-catch de construction spécial . Regardez comment ça marche : Ancien niveau 09 - 6- Pourquoi «Après l'appel de method1. Ne s'affichera jamais» ne s'affichera pas à l'écran ? - Je suis content que vous ayez posé la question. A la ligne 25, il y a une division par zéro. Cela conduit à une erreur - une exception. La machine virtuelle Java a créé l'objet ArithmeticException contenant les informations d'erreur. Cet objet est une exception. - Une exception s'est produite dans la méthode method1() .Cela a entraîné l'arrêt immédiat de la méthode. Cela conduirait également à l'arrêt de la méthode main , s'il n'y avait pas de bloc try-catch . - Si une exception se produit à l'intérieur du bloc try, elle sera interceptée dans le bloc catch . Le reste du code dans le bloc try ne sera pas exécuté, l'exécution du bloc catch commencera immédiatement. - Je ne comprends pas bien. - En d'autres termes, ce code fonctionne comme ceci :
  1. Si une exception se produit à l'intérieur du bloc try , le code de ce bloc n'est plus exécuté, mais l'exécution du bloc catch démarre.
  2. Si aucune exception ne se produit, le bloc try est exécuté jusqu'à la fin et catch n'est jamais exécuté .
- Hum ! - Imaginez qu'après chaque appel de méthode, nous vérifions si la méthode appelée s'est terminée par elle-même ou en raison d'une exception. S'il y avait une exception, la JVM commence à exécuter la capture de bloc si elle est disponible, et intercepte une exception. S'il n'y a pas de bloc catch, JVM termine la méthode actuelle. Ensuite, la même vérification commence dans la méthode qui a appelé la méthode actuelle. - Maintenant, je pense que j'ai compris. - C'est très bien. - Et quelle est cette Exception à l'intérieur du bloc catch ? - Toutes les exceptions sont des classes héritées de la classe Exception. Nous pouvons attraper n'importe lequel d'entre eux en spécifiant sa classe dans le catchbloc, ou tous à la fois en spécifiant une classe parente commune Exception. Ensuite, à partir de la variable e (cette variable stocke la référence d'un objet exception) vous pouvez obtenir toutes les informations nécessaires sur l'erreur. - Super! Et si dans ma méthode se produisent différentes exceptions, puis-je les gérer de différentes manières ? - Vous devez. Vous pouvez le faire comme ceci : Ancien niveau 09 - 7- Le bloc try peut contenir plusieurs blocs catch , chacun d'entre eux interceptant les exceptions de son type. - Hum. Eh bien, j'ai compris. Bien sûr, je n'écrirai pas quelque chose comme ça moi-même. Cependant, je n'aurai pas peur si je rencontre un tel code.

4 Elly, RuntimeException, lance

Ancien niveau 09 - 8- J'ai décidé d'aborder un autre sujet aujourd'hui. En Java, toutes les exceptions sont divisées en deux types : contrôlées/vérifiées et non contrôlées/non contrôlées . Les exceptions cochées doivent être interceptées, les exceptions non cochées peuvent être interceptées mais ce n'est pas obligatoire . - Est-il possible de lancer exprès des exceptions dans un code ? - Dans votre code, vous pouvez lancer vous-même des exceptions. Vous pouvez même écrire vos propres exceptions. Mais nous irons au fond de ce trou plus tard. Apprenons maintenant à travailler avec les exceptions levées par la machine virtuelle Java. - D'ACCORD. - Si exceptions ClassNotFoundException et FileNotFoundExceptionsont lancés (apparaissent) dans une méthode, le programmeur doit les spécifier dans la signature d'une méthode (en-tête de méthode). Ces exceptions sont vérifiées. C'est à quoi cela ressemble habituellement : Ancien niveau 09 - 9- Donc, nous écrivons juste des lancers et listons les exceptions séparées par des virgules. Droite? Est-ce vrai? - Oui. Mais il y a une autre chose intéressante. Pour que l'exemple ci-dessous ait été compilé, la méthode qui appelle method1() doit soit intercepter ces exceptions , soit les renvoyer. Si vous souhaitez lancer une exception vérifiée, vous devez le spécifier dans l'en-tête de la méthode . - Encore une fois, si dans la méthode principale , vous souhaitez appeler une méthode qui a dans sa phrase d'en-tête throws FileNotFoundException, …alors vous devez faire l'une de ces deux choses:
  1. pour attraper les exceptions FileNotFoundException, …
    Vous devrez envelopper le code où vous appelez une méthode dangereuse avec un bloc try-catch
  2. ne pas intercepter les exceptions FileNotFoundException, …
Vous devrez ajouter ces exceptions à la liste throws de votre méthode main . - Voulez-vous me donner un exemple? - Regardez ici : Ancien niveau 09 - 10- Cet exemple ne sera pas compilé, car la méthode main appelle la méthode method1(), qui lève des exceptions qui doivent être interceptées. - Pour que l'exemple soit compilé, vous devez ajouter la gestion des exceptions à la méthode main . Vous pouvez le faire de deux manières : Ancien niveau 09 - 11- Et ici on l'attrape en utilisant try-catch : Ancien niveau 09 - 12- Ça devient plus clair, mais très peu. - Regardez l'exemple ci-dessous : Ancien niveau 09 - 13- Il y a toujours une exception - RuntimeException et les classes héritées de celle-ci.Il n'est pas nécessaire de les attraper ou de les lancer. Ce sont des exceptions non contrôlées. Ces exceptions sont considérées comme difficiles à prévoir, il est donc presque impossible de prévoir leur occurrence. Vous pouvez faire la même chose avec eux, mais il n'est pas nécessaire de les spécifier dans throws .

5 Risha, Rouler la pile d'appels, comment le faire dans les exceptions

- J'aimerais vous en dire un peu plus sur le fonctionnement des exceptions. L'exemple ci-dessous explique cela : Ancien niveau 09 - 14- Je ne comprends pas. - D'accord. Je vais vous expliquer ce qui se passe. - Dans l'exemple de gauche, nous appelons plusieurs méthodes dans l'ordre de la chaîne. Dans method2() , nous créons et levons spécifiquement une exception (pour déclencher une erreur). - L'exemple de droite montre ce qui se passe. Regardez la method2() . C'est en quoi la création d'une exception se transforme : nous créons un objet de type RuntimeException , le stockons dans une variable spéciale exception et quittons immédiatement la méthode – return . - Dans method1 , après l'appel de method2 il y a une vérification,s'il y a une exception ou non; s'il y a une exception, method1 se termine immédiatement. Cette vérification est effectuée implicitement après l'appel de chaque (!) méthode Java. - Ouah! - Exactement. - Dans la colonne de droite de la méthode main j'ai écrit ce qui se passe lorsqu'une exception est interceptée par le bloc try-catch . S'il n'y a pas eu d'exception, le code continue de s'exécuter comme prévu. S'il y avait une exception du type spécifié dans catch , nous la traitons. - Et que signifient throw et instanceof ? - Regardez la dernière ligne à gauche et lancez de nouvelles RuntimeException(s). De cette façon, nous créons et levons une exception. C'est juste un exemple. Nous ne le ferons pas pour autant. - A l'aide de la commande « а instanceof B » dans le bloc de droite on vérifie si l'objet a est de type B . Autrement dit, si l'objet stocké dans la variable exception a le type RuntimeException . C'est une expression logique. - Eh bien, ça devient un peu plus clair.

6 Diego, Tâche de capture d'exception

- Regardez ici! Oncle Diego a apporté quelques tâches à attraper pour vous. Je te souhaite bonne chance. Je pense que vous en aurez besoin. Il h. Ancien niveau 09 - 15- Salut Amigo ! Voici quelques tâches de capture d'exception intéressantes.
Attraper des tâches
1 1. Exception lors de l'utilisation de nombres
Attrapez l'exception qui se produit lors de l'exécution du code :
int a = 42 / 0 ;
Afficher l'exception à l'écran en précisant son type
2 2. Exception lors de l'utilisation de chaînes
Attrapez l'exception qui se produit lors de l'exécution du code :
String s = null;
Chaîne m = s.toLowerCase();
Affiche l'exception à l'écran en précisant son type.
3 3. Exception lors de l'utilisation de tableaux
Attrapez l'exception qui se produit lors de l'exécution du code :
int[] m = new int[2] ;
m[8] = 5 ;
Affiche l'exception à l'écran en précisant son type.
4 4. Exception lors de l'utilisation des collections List
Attrapez l'exception qui se produit lors de l'exécution du code :
ArrayList<String> list = new ArrayList<String>();
Chaîne s = liste.get(18);
Affiche l'exception à l'écran en précisant son type.
5 5. Exception lors de l'utilisation de collections Map
Attrapez l'exception qui se produit lors de l'exécution du code :
HashMap<String, String> map = new HashMap<String, String>(null);
map.put(null, null);
map.remove(null);
Affiche l'exception à l'écran en précisant son type.
- Astuce : écrivez d'abord un programme, puis voyez quelle exception se produit, puis modifiez le code et interceptez cette exception.

7 Risha, Comment fonctionne la capture multiple

Ancien niveau 09 - 16- Maintenant, quelques conférences plus intéressantes. J'aime tellement enseigner. - Je veux vous dire comment fonctionne une prise multiple . En fait c'est très simple : lorsqu'une exception survient dans le bloc try , l'exécution du programme est transférée au premier catch . - Si le type spécifié entre parenthèses du bloc catch est le même que le type de l'exception-object, alors l'exécution du code commence à l'intérieur du {}. Sinon on passe à la prise suivante . Le contrôle y est répété. - S'il n'y a plus de blocs catch , mais que l'exception n'a pas été interceptée, elle est renvoyée et la méthode en cours est interrompue. - Je vois. Ce catch sera exécuté, dont le type correspond au type d'exception. - Oui, c'est vrai. En fait, c'est un peu plus compliqué : le fait est que les classes peuvent être héritées les unes des autres. Si la classe « Vache » est héritée de la classe « Animal », l'objet de type « Vache » peut être stocké non seulement dans une variable de type « Vache », mais également dans une variable de type « Animal » . - Et alors? - Étant donné que toutes les exceptions sont héritées des classes Exception ou RuntimeException (qui est également héritée de Exception ), elles peuvent toutes être interceptées à l'aide des commandes catch (Exception e) ou catch (RuntimeException e) . - Et alors? - Cela signifie que,d'abord, vous pouvez intercepter n'importe quelle exception en utilisant la commande catch(Exception e) . Deuxièmement, l'ordre des blocs catch est important. Exemples : - ArithmeticException résultant d'une division par 0 est intercepté dans la deuxième capture. Ancien niveau 09 - 17- Dans l'exemple ci-dessous, ArithmeticException est intercepté dans le premier catch , car les classes de toutes les exceptions sont héritées de Exception. Ainsi, Exception intercepte toute exception . Ancien niveau 09 - 18- Dans l'exemple ci-dessous, l'exception ArithmeticException n'est pas interceptée, mais transmise à la méthode appelante. Ancien niveau 09 - 19- Eh bien, ça devient plus clair maintenant. Ces exceptions ne sont pas si faciles. - Il semble seulement ainsi. En fait, c'est l'une des choses les plus simples en Java. - Je ne sais pas si je dois être content ou contrarié à ce sujet…

8 Diego, Tâches de capture d'exceptions multiples

- Salut Amigo ! Hier, je me suis saoulé et j'ai trop compliqué vos tâches, mais j'espère qu'il n'y a pas de rancune de votre part et que vous les résoudrez tous ? C'est pour ton bien. Ici:
Tâches
1 1. Exceptions
Il existe une méthode qui lève deux exceptions héritées de Exception et les deux autres héritées de RuntimeException : NullPointerException , ArithmeticException , FileNotFoundException et URISyntaxException .

Vous devez intercepter NullPointerException et FileNotFoundException , mais pas ArithmeticException et URISyntaxException . Comment faire?
2 2. Attraper les exceptions
Il existe trois exceptions séquentiellement héritées de Exception :
la classe Exception1 étend Exception
la classe Exception2 étend Exception1
la classe Exception3 étend Exception2
Il existe une méthode, qui est décrite comme suit :
public static void method1() throws Exception1, Exception2, Exception3

Ecrire un catch bloc pour attraper tous les trois Exception1 , Exception2 et Exception3
3 3. Attraper des exceptions sélectives
1. Découvrez quelles exceptions sont levées par la méthode BEAN.methodThrowExceptions .
2. La méthode processExceptions() doit appeler la méthode BEAN.methodThrowExceptions et gérer les exceptions :
2.1. si une exception FileSystemException se produit, enregistrez-la en appelant la méthode BEAN.log et lancez
2.2. si une exception CharConversionException ou toute autre IOException se produit, enregistrez-la simplement en appelant la méthode BEAN.log
3. Ajoutez la classe/le type de l'exception que vous transférez dans 2.1. aux processExceptions()signature de la méthode.
4. Gérez l'exception restante dans la méthode main() et enregistrez-la. Utilisez try..catch

Astuce :
Si vous avez intercepté l'exception MyException , que vous ne vouliez pas intercepter, vous pouvez la renvoyer à l'aide du code suivant :
catch (MyException e) {
throw e;
}
4 4. Attraper les exceptions cochées
Gérez toutes les exceptions cochées dans la méthode processExceptions() .
Vous devez afficher à l'écran chaque exception vérifiée qui s'est produite.
Vous ne pouvez utiliser qu'un seul bloc try .
5 5. Attraper les exceptions non contrôlées
Gérez toutes les exceptions non contrôlées dans la méthode processExceptions() .
Vous devez afficher à l'écran une trace de pile de chaque exception survenue à l'aide de la méthode printStack() .
Vous ne pouvez utiliser qu'un seul bloc try .

9 Professeur, Conférence sur les exceptions

- Aujourd'hui, nous avons un sujet super intéressant - les exceptions. A l'époque où les jeunes scientifiques et programmeurs étaient profondément enthousiasmés par ce sujet… - Désolé, je dois aller au labo. Voici des notes de cours. Je pense que tu le découvriras par toi-même. Ici : Exceptions Java (Documentation Oracle) Gestion des exceptions en Java (point Java T) Java - Gestion des exceptions (point des didacticiels) Gestion des exceptions Java de base

10 juillet

- Amigo, que penses-tu de la leçon d'aujourd'hui ? Votre cerveau à positrons n'a pas encore fonctionné ? Les tâches de Diego suffisent à épuiser n'importe qui. Prenons un moment de bière et détendons-nous. Êtes-vous toujours debout ?

11 Capitaine Écureuils

- Salut, soldat ! - Bonjour Monsieur! - J'ai une super nouvelle pour vous. Voici une vérification rapide pour renforcer vos compétences. Faites-le tous les jours et vous améliorerez vos compétences très rapidement. Les tâches sont spécialement conçues pour être effectuées dans Intellij IDEA.
Tâches supplémentaires à effectuer dans Intellij Idea
1 1. Division par zéro
Créez une méthode public static void divisionByZero() , où vous devez diviser n'importe quel nombre par zéro et afficher à l'écran le résultat de la division.
Enveloppez l' appel de la méthode divisionByZero() dans un try..catch . Affichez à l'écran la trace de la pile d'exceptions à l'aide de la méthode exception.printStackTrace() .
2 2. Compte à rebours de 10 à 0
Écrivez une boucle pour un compte à rebours de 10 à 0. Utilisez Thread.sleep(100) pour faire un délai ;
Enveloppez l' appel de veille dans un try..catch .
3 3. Enveloppez une méthode dans un try..catch
Lire les nombres sur le clavier. Écrivez un code pour lire les nombres du clavier dans une méthode séparée readData() .
Enveloppez tout le corps de cette méthode (tout le code à l'intérieur de la méthode readData() , à l'exception de la déclaration de la liste où les nombres seront stockés) dans un try..catch .

Si l'utilisateur entre du texte au lieu d'entrer un nombre, la méthode doit intercepter l'exception et afficher à l'écran tous les nombres entrés auparavant.
Afficher les numéros à l'écran. Chaque numéro doit être sur une nouvelle ligne. L'ordre des nombres doit être identique à celui de l'entrée.
4 4. Convertisseur de date
Lire au clavier une date au format « 18/08/2013 »
Afficher à l'écran cette date au format « 18 AOÛT 2013 ».
Utilisez les objets Date et SimpleDateFormat .
5 5. Voyelles et consonnes
Écrivez un programme qui lit les lignes du clavier.
Le programme doit afficher à l'écran deux chaînes :
1) la première chaîne doit contenir des voyelles
2) la deuxième chaîne doit contenir des consonnes et des signes de ponctuation du texte saisi.
Séparez les caractères par des espaces.

Exemple d'entrée :
Stop look listen
Exemple de sortie :
oooie
stplklstn
6 6. Le conte du Petit Chaperon Rouge
1. Il y a cinq classes : Chaperon Rouge, grand-mère, pâté, bûcheron, loup.
2. Chaque classe possède deux champs de type ArrayList : kill et ate.
3. Les objets nécessaires sont déjà créés (capot, grand-mère, ...).
4. Créez la relation correcte (qui a mangé et tué qui) pour obtenir la logique du « Petit Chaperon Rouge ».
7 7. Déplacer les modifications statiques
Déplacer les modificateurs statiques pour que le code se compile.
8 8. Liste de tableaux de nombres
Créez une liste dont les éléments sont des tableaux de nombres. Ajoutez à la liste cinq tableaux d'objets de longueur 5, 2, 4, 7, 0, respectivement. Remplissez les tableaux avec n'importe quelles données et affichez-les à l'écran.
9 9. Dix chats
Créez une classe Cat avec un champ String name .
Créez un dictionnaire Map<String, Cat> , ajoutez 10 chats sur le modèle «Name» - «Cat».
Obtenez de la carte un ensemble de noms et affichez l'ensemble à l'écran.
- Ces tâches étaient pour les verts. J'ai ajouté des tâches bonus de plus grande complexité. Uniquement pour les meilleurs canons.
Tâches bonus
1 1. Le programme ne se compile pas et ne s'exécute pas. Répare le.
Tâche : Le programme doit lire à partir du clavier deux noms de fichiers et copier le premier fichier à l'emplacement spécifié par le deuxième nom.
2 2. Ajoutez de nouvelles fonctionnalités au programme.
Ancienne tâche : le programme doit lire à partir du clavier deux noms de fichiers et copier le premier fichier à l'emplacement spécifié par le deuxième nom.
Nouvelle tâche : Le programme doit lire à partir du clavier deux noms de fichiers et copier le premier fichier à l'emplacement spécifié par le deuxième nom.

Si le fichier (qui va être copié) avec le nom spécifié n'existe pas, le programme doit afficher à l'écran le message « Le fichier n'existe pas » et essayer de lire à nouveau le nom du fichier depuis la console avant de lire le nom du deuxième fichier (destination).
3 3. Apprendre et pratiquer l'algorithme.
Lire au clavier la liste des mots et des chiffres. Affiche à l'écran les mots en ordre croissant et les nombres en ordre décroissant.

Exemple d'entrée :
Cerise
1
Haricot
3
Pomme
2
0
Pastèque

Exemple de sortie :
Pomme
3
Haricot
2
Cerise
1
0
Pastèque
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION