国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Table des matières
Erreur
Exception
Capture des exceptions
Déclaration des exceptions lancées
Lancer une exception
Remarques
getMessage
getLocalizedMessage
getCause
printStackTrace
Maison Java Javacommencer 10 points de connaissances clés sur les exceptions Java

10 points de connaissances clés sur les exceptions Java

Nov 26, 2019 pm 04:54 PM
java anormal

L'article suivant résume les dix points de connaissance clés des exceptions Java, qui sont utiles dans les entretiens ou le travail. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

10 points de connaissances clés sur les exceptions Java

1. Qu'est-ce qu'une exception

L'exception fait référence au blocage de la méthode ou de la portée actuelle. Problèmes d'exécution continue . Par exemple, le fichier que vous lisez n'existe pas, le tableau est hors limites et lors de la division, le diviseur est 0, etc., ce qui provoquera des exceptions.

[Apprentissage recommandé?: Tutoriel vidéo Java]

Un fichier introuvable exception?:

public class TestException {	
    public static void main(String[] args) throws IOException {	
        InputStream is = new FileInputStream("jaywei.txt");	
        int b;	
        while ((b = is.read()) != -1) {	
        }	
    }	
}

Exécution des résultats :

Exception in thread "main" java.io.FileNotFoundException: jaywei.txt (系統(tǒng)找不到指定的文件。)	
    at java.io.FileInputStream.open0(Native Method)	
    at java.io.FileInputStream.open(FileInputStream.java:195)	
    at java.io.FileInputStream.<init>(FileInputStream.java:138)	
    at java.io.FileInputStream.<init>(FileInputStream.java:93)	
    at exception.TestException.main(TestException.java:10)

2. Hiérarchie anormale

Il était une fois An vieil homme, son nom est Throwable, et il a donné naissance à deux fils, le fils a?né s'appelle Erreur, et le deuxième fils s'appelle Exception.

Erreur

indique des erreurs de compilation ou système, telles que des erreurs liées à la machine virtuelle, OutOfMemoryError, etc. L'erreur ne peut pas être gérée.

Exception

Exception de code, le type de base qui intéresse les programmeurs Java est généralement Exception. Il peut être traité par le programme lui-même, ce qui fait la différence entre celui-ci et Error.

Il peut être divisé en RuntimeException (exception d'exécution) et CheckedException (exception vérifiée).

Common RuntimeException?:

- NullPointerException 空指針異常	
- ArithmeticException 出現(xiàn)異常的運算條件時,拋出此異常	
- IndexOutOfBoundsException 數(shù)組索引越界異常	
- ClassNotFoundException 找不到類異常	
- IllegalArgumentException(非法參數(shù)異常)

Exception vérifiée commune?:

- IOException (操作輸入流和輸出流時可能出現(xiàn)的異常)	
- ClassCastException(類型轉(zhuǎn)換異常類)

● L'exception vérifiée est l'exigence du compilateur. Vous devez gérer les exceptions. .

● Au contraire, les exceptions non vérifiées, qui font référence aux exceptions pour lesquelles le compilateur ne nécessite pas de gestion forcée, incluent Error et RuntimeException et leurs sous-classes.

3. Gestion des exceptions

Lorsqu'une exception se produit, un objet d'exception sera créé sur le tas. Le chemin d'exécution actuel est terminé et une référence à l'objet d'exception est extraite de l'environnement actuel. à ce stade, le programme de gestion des exceptions peut récupérer le programme de l'état d'erreur et permettre au programme de continuer à s'exécuter.

La gestion des exceptions comprend principalement la génération d'exceptions, la capture d'exceptions et la déclaration d'exceptions. Comme le montre l'image?:

Capture des exceptions

try{	
// 程序代碼	
}catch(Exception e){	
//Catch 塊	
}finaly{	
  //無論如何,都會執(zhí)行的代碼塊	
}

Nous pouvons capturer le code d'exception via try...catch..., puis effectuer l'opération finale via finaly, comme fermer le flux Attendre les opérations.

Déclaration des exceptions lancées

En plus de try...catch...capter les exceptions, nous pouvons également déclarer des exceptions via des lancements.

Lorsque vous définissez une méthode, vous pouvez la déclarer avec le mot-clé throws. L'utilisation du mot-clé throws indique que la méthode ne gère pas les exceptions, mais les laisse à son appelant. Pensez-vous qu'il est irresponsable ?

Haha, jetez un ?il à la démo

//該方法通過throws聲明了IO異常。	
 private void readFile() throws IOException {	
        InputStream is = new FileInputStream("jaywei.txt");	
        int b;	
        while ((b = is.read()) != -1) {	
        }	
    }

Toute exception déclarée comme étant levée à partir d'une méthode doit utiliser la clause throws.

Lancer une exception

La fonction du mot-clé throw est de lever une exception de type Throwable, qui appara?t généralement dans le corps de la fonction. Dans la gestion des exceptions, l'instruction try capture un objet exception. En fait, cet objet exception peut également être lancé par lui-même.

Par exemple, lancez un objet d'exception de la classe RuntimeException?:

throw new RuntimeException(e);

Tout code Java peut lever des exceptions via l'instruction throw de Java.

Remarques

● Les exceptions non vérifiées (Error, RuntimeException ou leurs sous-classes) ne peuvent pas utiliser le mot-clé throws pour déclarer l'exception à lever.

● Si une méthode rencontre une exception au moment de la compilation, elle doit être gérée par try-catch/throws, sinon cela provoquera une erreur de compilation.

4. Séquence d'exécution Try-catch-finally-return

description de l'exécution try-catch-finally-return

● Si aucune exception ne se produit, la partie catch ne sera pas exécutée.

● Qu'une exception se produise ou non, sera finalement exécutée.

● Même s'il y a un retour dans try and catch, final sera quand même exécuté

● Enfin est exécuté après que l'expression suivant le retour ait été évaluée. (à ce stade, la valeur calculée n'est pas renvoyée, mais la valeur à renvoyer est enregistrée en premier. S'il n'y a pas de retour dans final, la valeur renvoyée ne changera pas quel que soit le code dans final et sera toujours la valeur renvoyée. celle enregistrée avant.), dans ce cas la valeur de retour de la fonction est déterminée avant l'exécution finale)

● Ne revenez pas dans la partie finale, sinon vous ne pourrez pas revenir à l'essai ou attraper le retour.

Regardez un exemple

 public static void main(String[] args) throws IOException {	
        System.out.println("result:" + test());	
    }	
    private static int test() {	
        int temp = 1;	
        try {	
            System.out.println("start execute try,temp is:"+temp);	
            return ++temp;	
        } catch (Exception e) {	
            System.out.println("start execute catch temp is: "+temp);	
            return ++temp;	
        } finally {	
            System.out.println("start execute finally,temp is:" + temp);	
            ++temp;	
        }	
    }

Résultats en cours?:

start execute try,temp is:1	
start execute finally,temp is:2	
result:2

Analyse

● Exécutez d'abord la partie try, affichez le journal, exécutez l'expression ++temp, temp devient 2 et cette valeur est enregistrée.

 ● 因為沒有發(fā)生異常,所以catch代碼塊跳過。

 ● 執(zhí)行finally代碼塊,輸出日志,執(zhí)行 ++temp表達式.

 ● 返回try部分保存的值2.

五、Java異常類的幾個重要方法

先來喵一眼異常類的所有方法,如下圖:

getMessage

Returns the detail message string of this throwable.

getMessage會返回Throwable的 detailMessage屬性,而 detailMessage就表示發(fā)生異常的詳細消息描述。

舉個例子, FileNotFoundException異常發(fā)生時,這個 detailMessage就包含這個找不到文件的名字。

getLocalizedMessage

Creates a localized description of this throwable.Subclasses may override this	
method in order to produce alocale-specific message. For subclasses that do not	
override thismethod, the default implementation returns the same result	
as getMessage()

throwable的本地化描述。子類可以重寫此方法,以生成特定于語言環(huán)境的消息。對于不覆蓋此方法的子類,默認實現(xiàn)返回與相同的結(jié)果 getMessage()。

getCause

Returns the cause of this throwable or null if thecause is nonexistent or unknown.

返回此可拋出事件的原因,或者,如果原因不存在或未知,返回null。

printStackTrace

Prints this throwable and its backtrace to thestandard error stream.	
The first line of output contains the result of the toString() method for	
this object.Remaining lines represent data previously recorded by the	
method fillInStackTrace().

該方法將堆棧跟蹤信息打印到標準錯誤流。

輸出的第一行,包含此對象toString()方法的結(jié)果。剩余的行表示,先前被方法fillInStackTrace()記錄的數(shù)據(jù)。如下例子:

 java.lang.NullPointerException	
         at MyClass.mash(MyClass.java:9)	
         at MyClass.crunch(MyClass.java:6)	
         at MyClass.main(MyClass.java:3)

六、自定義異常

自定義異常通常是定義一個繼承自 Exception 類的子類。

那么,為什么需要自定義異常?

 ● Java提供的異常體系不可能預見所有的錯誤。

 ● 業(yè)務開發(fā)中,使用自定義異常,可以讓項目代碼更加規(guī)范,也便于管理。

下面是我司自定義異常類的一個簡單demo

public class BizException extends Exception {	
    //錯誤信息	
    private String message;	
    //錯誤碼	
    private String errorCode;	
    public BizException() {	
    }	
    public BizException(String message, String errorCode) {	
        this.message = message;	
        this.errorCode = errorCode;	
    }	
    @Override	
    public String getMessage() {	
        return message;	
    }	
    public void setMessage(String message) {	
        this.message = message;	
    }	
    public String getErrorCode() {	
        return errorCode;	
    }	
    public void setErrorCode(String errorCode) {	
        this.errorCode = errorCode;	
    }	
}

跑個main方測試一下

public class TestBizException {	
    public static void testBizException() throws BizException {	
        System.out.println("throwing BizException from testBizException()");	
        throw new BizException("100","哥,我錯了");	
    }	
    public static void main(String[] args) {	
        try {	
            testBizException();	
        } catch (BizException e) {	
            System.out.println("自己定義的異常");	
            e.printStackTrace();	
        }	
    }	
}

運行結(jié)果:

exception.BizException: 100	
throwing BizException from testBizException()	
自己定義的異常	
    at exception.TestBizException.testBizException(TestBizException.java:7)	
    at exception.TestBizException.main(TestBizException.java:12)

七、Java7 新的 try-with-resources語句

try-with-resources,是Java7提供的一個新功能,它用于自動資源管理。

 ● 資源是指在程序用完了之后必須要關(guān)閉的對象。

 ● try-with-resources保證了每個聲明了的資源在語句結(jié)束的時候會被關(guān)閉

 ● 什么樣的對象才能當做資源使用呢?只要實現(xiàn)了java.lang.AutoCloseable接口或者java.io.Closeable接口的對象,都OK。

try-with-resources出現(xiàn)之前

try{	
    //open resources like File, Database connection, Sockets etc	
} catch (FileNotFoundException e) {	
    // Exception handling like FileNotFoundException, IOException etc	
}finally{	
    // close resources	
}

Java7, try-with-resources出現(xiàn)之后,使用資源實現(xiàn)

try(// open resources here){	
    // use resources	
} catch (FileNotFoundException e) {	
    // exception handling	
}	
// resources are closed as soon as try-catch block is executed.

Java7使用資源demo

public class Java7TryResourceTest {	
    public static void main(String[] args) {	
        try (BufferedReader br = new BufferedReader(new FileReader(	
                "C:/jaywei.txt"))) {	
            System.out.println(br.readLine());	
        } catch (IOException e) {	
            e.printStackTrace();	
        }	
    }	
}

使用了 try-with-resources的好處

 ● 代碼更加優(yōu)雅,行數(shù)更少。

 ● 資源自動管理,不用擔心內(nèi)存泄漏問題。

八、異常鏈

我們常常會想要在捕獲一個異常后拋出另一個異常,并且希望把原始異常的信息保存下來,這被稱為異常鏈。

throw 拋出的是一個新的異常信息,這樣會導致原有的異常信息丟失。在JDk1.4以前,程序員必須自己編寫代碼來保存原始異常信息?,F(xiàn)在所有 Throwable 子類在構(gòu)造器中都可以接受一個 cause(異常因由) 對象作為參數(shù)。

這個 cause就用來表示原始異常,這樣通過把原始異常傳遞給新的異常,使得即使當前位置創(chuàng)建并拋出了新的異常,也能通過這個異常鏈追蹤到異常最初發(fā)生的位置。

使用方式如下:

public class TestChainException {	
    public void readFile() throws MyException{	
        try {	
            InputStream is = new FileInputStream("jay.txt");	
            Scanner in = new Scanner(is);	
            while (in.hasNext()) {	
                System.out.println(in.next());	
            }	
        } catch (FileNotFoundException e) {	
            //e 保存異常信息	
            throw new MyException("文件在哪里呢", e);	
        }	
    }	
    public void invokeReadFile() throws MyException{	
        try {	
            readFile();	
        } catch (MyException e) {	
            //e 保存異常信息	
            throw new MyException("文件找不到", e);	
        }	
    }	
    public static void main(String[] args) {	
        TestChainException t = new TestChainException();	
        try {	
            t.invokeReadFile();	
        } catch (MyException e) {	
            e.printStackTrace();	
        }	
    }	
}	
//MyException 構(gòu)造器	
public MyException(String message, Throwable cause) {	
        super(message, cause);	
    }

運行結(jié)果:

我們可以看到異常信息有保存下來的,如果把cause(也就是FileNotFoundException 的e)去掉呢,看一下運行結(jié)果:

可以發(fā)現(xiàn),少了 Throwablecause,原始異常信息不翼而飛了。

九、異常匹配

拋出異常的時候,異常處理系統(tǒng)會按照代碼的書寫順序找出"最近"的處理程序。找到匹配的處理程序之后,它就認為異常將得到處理,然后就不再繼續(xù)查找。

查找的時候并不要求拋出的異常同處理程序的異常完全匹配。派生類的對象也可以配備其基類的處理程序

看demo

package exceptions;	
//: exceptions/Human.java	
// Catching exception hierarchies.	
class Annoyance extends Exception {}	
class Sneeze extends Annoyance {}	
public class Human {	
  public static void main(String[] args) {	
    // Catch the exact type:	
    try {	
      throw new Sneeze();	
    } catch(Sneeze s) {	
      System.out.println("Caught Sneeze");	
    } catch(Annoyance a) {	
      System.out.println("Caught Annoyance");	
    }	
    // Catch the base type:	
    try {	
      throw new Sneeze();	
    } catch(Annoyance a) {	
      System.out.println("Caught Annoyance");	
    }	
  }	
}

運行結(jié)果:

catch(Annoyance a)會捕獲Annoyance以及所有從它派生的異常。捕獲基類的異常,就可以匹配所有派生類的異常

try {	
      throw new Sneeze();	
    } catch(Annoyance a) {	
    } catch(Sneeze s) { //這句編譯器會報錯,因為異常已由前面catch子句處理	
    }

十、Java常見異常

NullPointerException

空指針異常,最常見的一個異常類。簡言之,調(diào)用了未經(jīng)初始化的對象或者是不存在的對象,就會產(chǎn)生該異常。

ArithmeticException

算術(shù)異常類,程序中出現(xiàn)了除數(shù)為0這樣的運算,就會出現(xiàn)這樣的異常。

ClassCastException

類型強制轉(zhuǎn)換異常,它是JVM在檢測到兩個類型間轉(zhuǎn)換不兼容時引發(fā)的運行時異常。

ArrayIndexOutOfBoundsException

數(shù)組下標越界異常,跟數(shù)組打交道時,需要注意一下這個異常。

FileNotFoundException

文件未找到異常,一般是要讀或者寫的文件,找不到,導致該異常。

SQLException

操作數(shù)據(jù)庫異常,它是Checked Exception(檢查異常);

IOException

IO異常,一般跟讀寫文件息息相關(guān),它也是Checked Exception(檢查異常)。平時讀寫文件,記得IO流關(guān)閉!

NoSuchMethodException

方法未找到異常

NumberFormatException

字符串轉(zhuǎn)換為數(shù)字異常

總結(jié)

這個總結(jié)獨辟蹊徑,以幾道經(jīng)典異常面試題結(jié)束吧,以幫助大家復習一下,嘻嘻。

 ● java 異常有哪幾種,特點是什么?(知識點二可答)

 ● 什么是Java中的異常?(知識點一可答)

 ● error和exception有什么區(qū)別?(知識點二可答)

 ● 什么是異常鏈?(知識點八可答)

 ● try-catch-finally-return執(zhí)行順序(知識點四可答)

 ● 列出常見的幾種RunException (知識點二可答)

 ● Java異常類的重要方法是什么?(知識點五可答)

 ● error和exception的區(qū)別,CheckedException,RuntimeException的區(qū)別。(知識點二可答)

 ● 請列出5個運行時異常。(知識點二可答)

 ● Java 7 新的 try-with-resources 語句(知識點七可答)

 ● 怎么自定義異常?(知識點六可答)

 ● 說一下常見異常以及產(chǎn)生原因(知識點十可答)

 ● 談談異常匹配(知識點九可答)

 ● 談談異常處理(知識點三可答)

本文來自?java入門?欄目,歡迎學習!

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefa?on, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1502
276
Comment gérer les transactions en Java avec JDBC? Comment gérer les transactions en Java avec JDBC? Aug 02, 2025 pm 12:29 PM

Pour gérer correctement les transactions JDBC, vous devez d'abord désactiver le mode de validation automatique, puis effectuer plusieurs opérations, et enfin vous engager ou randonner en fonction des résultats; 1. Appelez Conn.SetAutoCommit (false) pour démarrer la transaction; 2. Exécuter plusieurs opérations SQL, telles que l'insertion et la mise à jour; 3. Appelez Conn.Commit () Si toutes les opérations sont réussies, et appelez Conn.Rollback () Si une exception se produit pour garantir la cohérence des données; Dans le même temps, les ressources TRY-With doivent être utilisées pour gérer les ressources, gérer correctement les exceptions et cl?turer les connexions pour éviter la fuite de connexion; De plus, il est recommandé d'utiliser des pools de connexion et de définir des points de sauvegarde pour réaliser un retour en arrière partiel, et de maintenir les transactions aussi courtes que possible pour améliorer les performances.

Comment travailler avec le calendrier à Java? Comment travailler avec le calendrier à Java? Aug 02, 2025 am 02:38 AM

Utilisez des classes dans le package Java.Time pour remplacer les anciennes classes de date et de calendrier; 2. Obtenez la date et l'heure actuelles via LocalDate, LocalDateTime et Localtime; 3. Créez une date et une heure spécifiques en utilisant la méthode OF (); 4. Utilisez la méthode plus / moins pour augmenter et diminuer le temps; 5. Utilisez ZonedDateTime et ZoneID pour traiter le fuseau horaire; 6. Format et cha?nes de date d'analyse via DateTimeFormatter; 7. Utilisez instantanément pour être compatible avec les anciens types de dates si nécessaire; Le traitement des dattes dans le Java moderne devrait donner la priorité à l'utilisation de Java.timeapi, qui fournit clairement, immuable et linéaire

Comparaison des frameworks Java: Spring Boot vs Quarkus vs MicronAut Comparaison des frameworks Java: Spring Boot vs Quarkus vs MicronAut Aug 04, 2025 pm 12:48 PM

Pré-formancetartuptimemoryusage, quarkusandmicronautleadduetocompile-timeprocessingandgraalvsupport, withquarkusofperforming lightbetterine scénarios.

Comment fonctionne la collection Garbage en Java? Comment fonctionne la collection Garbage en Java? Aug 02, 2025 pm 01:55 PM

La collecte des ordures de Java (GC) est un mécanisme qui gère automatiquement la mémoire, ce qui réduit le risque de fuite de mémoire en récupérant des objets inaccessibles. 1. GC juge l'accessibilité de l'objet de l'objet racine (tel que les variables de pile, les threads actifs, les champs statiques, etc.), et les objets inaccessibles sont marqués comme des ordures. 2. Sur la base de l'algorithme de compensation de marque, marquez tous les objets accessibles et effacez des objets non marqués. 3. Adopter une stratégie de collecte générationnelle: la nouvelle génération (Eden, S0, S1) exécute fréquemment MinorGC; Les personnes agées fonctionnent moins, mais prend plus de temps pour effectuer MajorGC; Metaspace Stores Metadata de classe. 4. JVM fournit une variété de périphériques GC: SerialGC convient aux petites applications; Le parallelGC améliore le débit; CMS réduit

Passez l'exemple de l'exemple de journalisation du middleware http Passez l'exemple de l'exemple de journalisation du middleware http Aug 03, 2025 am 11:35 AM

HTTP Log Middleware dans GO peut enregistrer les méthodes de demande, les chemins de requête, la propriété intellectuelle du client et le temps qui prend du temps. 1. Utilisez http.handlerfunc pour envelopper le processeur, 2. Enregistrez l'heure de début et l'heure de fin avant et après l'appel Suivant.Servehttp, 3. Obtenez le vrai client IP via R.RemoteAddr et X-Forwared-For Headers, 4. Utilisez le log.printf aux journaux de demande de sortie, 5. L'exemple de code complet a été vérifié pour s'exécuter et convient au démarrage d'un projet petit et moyen. Les suggestions d'extension incluent la capture des codes d'état, la prise en charge des journaux JSON et le suivi des ID de demande.

Utilisation de types HTML ?Entrée? pour les données utilisateur Utilisation de types HTML ?Entrée? pour les données utilisateur Aug 03, 2025 am 11:07 AM

Le choix du bon type HTMLinput peut améliorer la précision des données, améliorer l'expérience utilisateur et améliorer la convivialité. 1. Sélectionnez les types d'entrée correspondants en fonction du type de données, tels que le texte, le courrier électronique, le tel, le numéro et la date, qui peuvent vérifier automatiquement la somme de la somme et l'adaptation au clavier; 2. Utilisez HTML5 pour ajouter de nouveaux types tels que l'URL, la couleur, la plage et la recherche, qui peuvent fournir une méthode d'interaction plus intuitive; 3. Utilisez l'espace réservé et les attributs requis pour améliorer l'efficacité et la précision du remplissage des formulaires, mais il convient de noter que l'espace réservé ne peut pas remplacer l'étiquette.

Comparaison des outils de construction Java: Maven vs Gradle Comparaison des outils de construction Java: Maven vs Gradle Aug 03, 2025 pm 01:36 PM

GradleisthebetterChoiceFormostNewProjectsDuetOtsSuperiorflexibility, Performance et ModerNtoolingSupport.1.gradle’sgroovy / kotlindslismoreConcis

passer par l'exemple de déclaration de différence expliquée passer par l'exemple de déclaration de différence expliquée Aug 02, 2025 am 06:26 AM

Le report est utilisé pour effectuer des opérations spécifiées avant le retour de la fonction, telles que les ressources de nettoyage; Les paramètres sont évalués immédiatement lorsqu'ils sont reportés et les fonctions sont exécutées dans l'ordre de la dernière entrée (LIFO); 1. Plusieurs éleveurs sont exécutés dans l'ordre inverse des déclarations; 2. Communément utilisé pour le nettoyage sécurisé tel que la fermeture des fichiers; 3. La valeur de retour nommée peut être modifiée; 4. Il sera exécuté même si la panique se produit, adaptée à la récupération; 5. éviter l'abus de report dans les boucles pour éviter la fuite des ressources; Une utilisation correcte peut améliorer la sécurité et la lisibilité du code.

See all articles