Il existe trois principaux types d'erreurs:
・ Erreur de compilation due à une erreur grammaticale ・ Les exemples sont l'oubli du point-virgule, une faute d'orthographe, etc. -Non compilé
-Erreurs causées par des problèmes lors de l'exécution -Par exemple, un fichier qui devrait être là est supprimé, une valeur qui devrait y être est une valeur nulle, etc. ・ Compilé
-Le résultat de l'exécution est différent de ce qui était prévu en raison d'une erreur de syntaxe. ・ Par exemple, 3 + 5 est généré comme 35 avec le logiciel de calculatrice. ・ Compilé
Il existe 3 types ・ ** Pour "2. Erreur d'exécution", écrivez le code qui suppose l'heure de l'erreur. ** ** ・ ** "1. Erreur de grammaire" et "3. Erreur de logique" sont traités en modifiant le code d'origine! ** **
-Les classes sont préparées pour chaque état d'occurrence d'erreur et sont composées de hiérarchies d'héritage. ・ Signification pour chaque classe ・ Le diagramme de hiérarchie d'héritage est le suivant
** Pour ʻException`, il est nécessaire d'écrire du code capable de gérer lorsqu'une erreur se produit **
Les exceptions sont répertoriées dans l'API Java
Il existe deux principaux types de gestion des exceptions.
Utilisé lors de l'écriture du traitement lorsqu'une exception se produit dans sa propre méthode
try {
Traitement original
}catch (Nom de la variable de classe d'exception) {
Que faire si une exception se produit
}finally{
Processus à exécuter sans échec quelles que soient les exceptions
}
[Flux de traitement]
(1) Décrivez le processus dans la méthode try
, et si une exception se produit, transmettez l'instance de classe d'erreur à catch
.
(2) Recevoir une instance d'exception avec (nom de variable de classe d'exception)
de catch (nom de variable de classe d'exception)
.
Décrivez le traitement après réception dans la méthode.
③ Dans finally
, un traitement tel que la fermeture / déconnexion du fichier est effectué.
Soi-disant message d'erreur. Affiché avec String getMessage ()
.
Dans quel ordre la JVM a-t-elle appelé les méthodes du programme et où l'exception s'est-elle produite?
Affichez le contenu avec void printStack Trace
.
public static void main (String[] args) {
FileWriter fw = null;
try {
fw = new FileWriter("date.txt");//Génération d'instance
fw.write("hellow");//Écrivez bonjour à l'intérieur
}catch (Exception e) {
System.out.println("Une exception s'est produite");
}finally{
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
-Catch (Exception e)
signifie que toutes les instances d'exception des descendants de ʻException` seront reçues.
-Voir ci-dessous pour la classe FileWriter
https://docs.oracle.com/javase/jp/6/api/java/io/FileWriter.html
https://www.sejuku.net/blog/20657
enfin
try (
Génération d'instances de fichiers
){
Traitement des fichiers
}catch{
}
Les fichiers et bases de données ouverts dans () appelleront automatiquement la méthode close
une fois le traitement terminé.
Comment décrire le traitement lorsqu'une exception se produit lors de la demande de la méthode d'appel
Le nom de la méthode renvoie le nom de classe d'exception 1,Nom de classe d'exception 2
[Supplément]
-En déclarant throws
, la description de l'instruction try catch
n'est plus obligatoire.
-La méthode appelante doit écrire une instruction try catch
Il est possible non seulement de recevoir l'exception qui s'est produite, mais également de notifier l'exception
lancer le nom de l'instance d'exception
//méthode principale
public class Main {
public static void main(String[] args) {
Person person = new Person();
person.setAge(-100);
}
}
//Classe de personne
public class Person {
int age;
public void setAge(int age) {
if(age<0) {
throw new IllegalArgumentException("L'âge doit être un nombre positif.");
}
this.age = age;
}
}
//Résultat de sortie
Exception in thread "main" java.lang.IllegalArgumentException:L'âge doit être un nombre positif.
at Java15.Person.setAge(Person.java:7)
at Java15.Main.main(Main.java:6)
-Voir ci-dessous pour la classe IllegalArgumentException https://docs.oracle.com/javase/jp/7/api/
Recommended Posts