L'article suivant fournit un aperçu de Enfin en Java. Enfin, il s'agit d'un bloc de code utilisé avec try and catch. Contient enfin le bloc de code qui doit être exécuté qu'une exception se produise ou non. Les instructions écrites à l'intérieur du bloc final s'exécutent toujours, qu'une erreur se soit produite ou non dans le bloc try. Enfin, le bloc est utile pour fermer des fichiers ou une connexion à une base de données, ce qui garantit que vous n'obtiendrez aucune erreur de mémoire due à un fichier ouvert ou à une erreur de base de données due à une connexion ouverte ou à une erreur de connexion maximale. Cela garantit également que toute erreur qui se produit dans le code sera traitée avec élégance.
PUBLICITÉ Cours populaire dans cette catégorie MODÉLISATION ET VALORISATION FINANCIÈRE - Spécialisation | 51 Série de cours | 30 tests simulésCommencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Syntaxe :
try { //block of code that may cause an exception }
catch { //Handling the error occurred in try block }
finally { //code that should always execute }
Ici, nous allons générer une erreur ou écrire un code erroné qui entraînerait une erreur et finalement bloquer l'exécution.
Code :
class ExampleFinally { public static void main(String args[]) { try{ int result = 1/0; System.out.println(result); catch(ArithmeticException e){ System.out.println("Divide by Zero Error"); } /* Finally block will always execute * even when we have created an error Block */ finally{ System.out.println("Gracefully Handling Error in Finally"); } System.out.println("Execution complete out of Try Catch Finally block"); } }
Sortie :
Explication :
Dans le programme ci-dessus, nous avons divisé un nombre à partir de zéro, ce que nous avons déjà fait .
Et après le try catch finalement, bloc, nous avons écrit un bloc de code en dehors de tout ce qui a été imprimé.
Un autre exemple, nous verrions où aucune exception ne se produirait dans le bloc try-catch-finally et verrions ce qui se passe.
Code :
class ExampleFinally { public static void main(String args[]) { try { int result = 100/10; System.out.println(result); System.out.println("try code block"); } catch (Exception e) { System.out.println("catch code block"); } finally { System.out.println("finally code block"); } } }
Sortie :
Explication :
Dans le programme ci-dessus, nous n’avons écrit aucun code pouvant provoquer une erreur. Le code s'est exécuté avec succès à l'intérieur du bloc try, mais vous pouvez quand même voir le bloc final être exécuté et imprimer le message à l'intérieur.
L'ouverture d'un fichier en lecture ou en écriture nécessite d'ouvrir un fichier, puis de mettre le flux en mémoire tampon, et nous devons nous assurer de fermer le fichier ouvert afin que nous n'obtenions aucune erreur de gestion de fichier, d'E/S ou de disque.
Code :
import java.io.*; public class ReadingFromFile { public static void main(String[] args)throws Exception { FileReader fr = null; try { fr = new FileReader("/Users/cdp/Documents/testing/python virtual/java/myfile.txt");<> System.out.println("Opening the file"); BufferedReader br = new BufferedReader(fr); String line; while ((line = br.readLine()) != null) System.out.println(line); } catch (FileNotFoundException e) { e.printStackTrace(); } finally { if (fr != null) { try { System.out.println("Closing the file "); fr.close(); } catch (IOException e) { System.out.println("unrecoverable Error occurred"); e.printStackTrace(); } } System.out.println("Exiting Finally block"); } } }
Sortie (le fichier n'existe pas) :
Sortie (le fichier existe) :
Dans l'exemple ci-dessus, nous avons essayé d'ouvrir un fichier et de le lire dans le tampon à partir d'un chemin de fichier. Si le fichier existe et que nous sommes capables de lire le fichier, aucune erreur ne sera générée et le tampon du fichier sera fermé dans le bloc final s'il n'est pas nul. Même s'il y a une erreur lors de la lecture du fichier, disons en raison d'une autorisation, le fichier sera également fermé en cas de blocage final.
Jusqu'à présent, nous avons vu quand et comment le blocage serait finalement exécuté.
Mais il peut y avoir certains scénarios dans lesquels finalement, le bloc ne sera pas exécuté.
Example:
import java.io.*; public class ReadingFromFile { public static void main(String[] args)throws Exception { FileReader fr = null; try { fr = new FileReader("/Users/cdp/Documents/testing/python virtual/java/myfile.txt"); System.out.println("Opening the file"); BufferedReader br = new BufferedReader(fr); String line; while ((line = br.readLine()) != null) System.out.println(line); System.exit(0); } catch (FileNotFoundException e) { e.printStackTrace(); } finally { if (fr != null) { try { System.out.println("Closing the file "); fr.close(); } catch (IOException e) { System.out.println("unrecoverable Error occurred"); e.printStackTrace(); } } System.out.println("Exiting Finally block"); } } }
Output:
In the above example, we have used System.exit in the try block after reading the file, and it gets executed. If the System.exit gets executed without any exception, then there won’t be any control transfer to the finally block. However, in the case of an exception occuring before the System.exit, then finally block would surely get executed.
In the conclusion we can reach, it can finally play a very important role in gracefully exiting the program in case of errors. Finally, the block is important when you open a connection or buffered something, and it’s always important to close the connection or file opened. Finally, the block would even execute if there is an error or no error in the try block code. Finally, blocks are not mandatory but are useful in some situations.
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!