为什么java到处都要用到try catch?
天蓬老师
天蓬老师 2017-04-18 10:26:06
0
18
1831

新手学java,在什么情况下要包括try catch啊?
我理解的try catch 是处理异常。
难道java有些方法对象 本身就要配合try catch来使用的吗?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

répondre à tous(18)
左手右手慢动作

Parce que c'est gonflé...
Je plaisante

黄舟

La philosophie de conception de Java, Checked Exception. Une fois qu'une fonction lève une exception non-exécutable, l'appelant externe doit effectuer un try catch pour s'assurer que toutes les exceptions conçues sont interceptées et gérées. Mais il existe un risque d’abus.

PHPzhong

Pouvez-vous capturer globalement les exceptions lorsque le programme est en cours d'exécution ?

小葫芦

2333, essentiellement les langages de programmation de haut niveau ont TRY CATCH Même s'ils ne le font pas, vous devez quand même penser à ajouter une gestion des erreurs pour augmenter la robustesse du programme, bien sûr, si vous et l'utilisateur le faites. ne vous souciez pas du tout des exceptions, vous n'êtes pas obligé de l'écrire. Vous pouvez également écrire uniquement dans des positions plus critiques. Il est parfois nécessaire d’ajouter le traitement des transactions.

左手右手慢动作

D'un point de vue actuel, try/catch est un peu fastidieux, en particulier lors de l'utilisation du JDBC sous-jacent (bien que ce soit rarement le cas maintenant. Lors de petits ajustements informels à la base de données, l'introduction d'ORM est une approche moins recommandée) . Il y a des try/catch partout. Et ils sont tous des SQLException unifiées. Vous devez vérifier le code renvoyé par la couche sous-jacente pour savoir quel est le problème.

Mais c'est une fonctionnalité de Java qui inclut tout. Dans un projet plus vaste, il y aura souvent des situations incontrôlables et il est peu probable que tout se passe comme prévu. Tout se passe comme prévu. Un système robuste et complet doit disposer des bases nécessaires pour faire face à certains problèmes simples et inattendus. C'est l'intention initiale du système d'exception Java. En fait, Java permet des définitions d'exceptions étendues pour faciliter le développement et le débogage.

Avant l'émergence de Spring, lorsque je construisais l'architecture de l'équipe de développement, j'introduisais des exceptions personnalisées dans la couche métier et la couche base de données pour permettre aux membres de l'équipe de se développer, mais ils avaient besoin de partager et de communiquer pour gérer problèmes possibles pouvant survenir dans le système d’entreprise. Situations non prises en compte au début du développement. Plus tard, ce modèle a été bien accueilli par les responsables. Étant donné que 80 à 90 % des exceptions qui se produisent dans le système se situent dans notre plage d’exceptions personnalisée, les exceptions d’exécution se produisent rarement. Il est très pratique de trouver des problèmes et de les entretenir.

Peter_Zhu

S'il n'y a pas d'essai, une exception entraînera le crash du programme. Et essayez de garantir le fonctionnement normal du programme, par exemple :

try{
int i = 1/0;
}catch(Exception e){
........
}

Dans un calcul, si le diviseur est 0, une erreur sera signalée. S'il n'y a pas d'essai, le programme plantera directement. En utilisant try, vous pouvez laisser le programme s'exécuter et indiquer pourquoi l'erreur s'est produite. Try catch, utilisé conjointement avec log4j, sera d'une grande aide pour la maintenance future du programme.

刘奇

问:新手学java,在什么情况下要包括try catch啊?

Réponse : Vulgariser quelques connaissances de base :

  • Principe et mécanisme anormaux

Lorsqu'une exception est levée dans le programme, le programme saute du code qui a provoqué l'exception dans le programme. La machine virtuelle Java détecte et recherche un bloc catch qui correspond au mot-clé try pour gérer l'exception. . S'il est trouvé, il prendra le contrôle. Remettez le code dans le bloc catch, puis continuez à exécuter le programme. Le code qui provoque une exception dans le bloc try ne sera pas réexécuté. Si aucun bloc catch n'est trouvé pour gérer l'exception, une fois que tout le code du bloc final est exécuté et que la méthode uncaughtException du ThreadGroup auquel appartient le thread actuel est appelée, le thread actuel qui rencontre l'exception est terminé.

  • Structure anormale

La classe Throwable est définie dans la structure d'exception Java, et Exceotion et Error sont ses deux sous-classes dérivées. L'exception représente une exception causée par une panne de réseau, un fichier endommagé, une erreur de périphérique, une entrée utilisateur illégale, etc. De telles exceptions peuvent être gérées via le mécanisme de capture d'exception Java. L'erreur représente une erreur dans l'environnement d'exécution Java, telle qu'un débordement de mémoire JVM, etc.

  • Résumé

Les exceptions sont une réponse instinctive aux problèmes du programme. L'utilisation de try catch signifie que vous pouvez bien gérer les exceptions dans le bloc de code correspondant, évitant ainsi les interruptions anormales du programme. Au contraire, vous pouvez lancer une exception et lancer l'exception au niveau suivant. .


问:我理解的try catch 是处理异常。难道java有些方法对象 本身就要配合try catch来使用的吗?

Réponse : Diffusons quelques connaissances de base :

  • Classement anormal

  • Exception détectable : Une exception détectable est vérifiée par le compilateur. Pour toute méthode déclarée pour lever une exception, le compilateur appliquera les règles de traitement ou de déclaration et n'interceptera pas cette exception. Il échoue et la compilation n'est pas autorisée.

  • Exception non cochée : L'exception non cochée ne suit pas les règles de traitement ou de déclaration. Lorsqu'une telle exception est déclenchée, aucune action appropriée n'est nécessairement prise et le compilateur ne vérifie pas si une telle exception a été résolue.

  • Résumé

Concernant ce problème, il est recommandé d'analyser et de comprendre en visualisant le code source correspondant. Le principe général est que tant que la méthode que vous appelez a une exception détectable, vous devez la gérer. ou lance une exception, lance l'exception au niveau suivant. Voici quelques exemples :

(scénario où try catch est utilisé)

PrintWriter pw = null;
try {
    pw = new PrintWriter(new File(CodeUtil.invoPath, name));
    pw.write(str_invo.toString());
} catch (FileNotFoundException e) {
    throw new RuntimeException(name+"文件未找到!");
}

(Voir l'analyse du code source pertinent)

public PrintWriter(File file) throws FileNotFoundException {
    this(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file))),
         false);
}

(Résumé de l'analyse)
Étant donné que le constructeur PrintWriter(File file) est suivi de la levée de FileNotFoundException, vous devez gérer l'exception levée par celui-ci lorsque vous appelez le constructeur.

阿神

Les langages généraux ont des mécanismes de gestion des exceptions.

L'un de mes articles fournit une brève introduction au mécanisme d'exception de Java. J'espère qu'il pourra vous aider.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal