[JAVA] exception

Type d'exception

Type d'exception

Il existe trois principaux types d'erreurs:

  1. Erreur de syntaxe
  2. Erreur d'exécution
  3. Erreur logique

1. Erreur de syntaxe

・ Erreur de compilation due à une erreur grammaticale ・ Les exemples sont l'oubli du point-virgule, une faute d'orthographe, etc. -Non compilé

2. Erreur d'exécution

-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é

3. Erreur logique

-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é

Résumé···

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! ** **

Classes représentant les exceptions et leurs types

-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

スクリーンショット 2018-03-05 9.38.13.png

Résumé···

** Pour ʻException`, il est nécessaire d'écrire du code capable de gérer lorsqu'une erreur se produit **

Gérer les exceptions

Comment vérifier les exceptions

Les exceptions sont répertoriées dans l'API Java

Exemple

スクリーンショット 2018-03-05 14.23.18.png

Types de gestion des exceptions

Il existe deux principaux types de gestion des exceptions.

  1. syntaxe de capture
  2. lance la syntaxe

1. syntaxe de capture

Quelle est la syntaxe catch

Utilisé lors de l'écriture du traitement lorsqu'une exception se produit dans sa propre méthode

comment utiliser

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é.

Informations dont dispose l'instance d'exception

① Explication des informations d'exception

Soi-disant message d'erreur. Affiché avec String getMessage ().

② Trace de pile

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.

Exemple

	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();
			}
		}
	}

Supplément

-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

Ecrire sans 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é.

2. lance la syntaxe

Quelle est la syntaxe des lancers

Comment décrire le traitement lorsqu'une exception se produit lors de la demande de la méthode d'appel

comment utiliser

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

Comment lever une exception

Façon de penser

Il est possible non seulement de recevoir l'exception qui s'est produite, mais également de notifier l'exception

comment utiliser

lancer le nom de l'instance d'exception

Exemple

//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

exception
Gestion des exceptions
Exception faite par vous-même
Exception de traitement des exceptions
Gestion des exceptions Java?
À propos de la gestion des exceptions
À propos de la gestion des exceptions
gestion des exceptions ruby
Méthode de commutation d'exception
[Java] Instance d'exception
Gestion des exceptions Ruby
[Java] Gestion des exceptions
☾ Java / Gestion des exceptions
À propos de la gestion des exceptions Java
Gestion des exceptions Java
À propos de la gestion des exceptions Ruby
Pratique de gestion des exceptions (ArithmeticException)
[java] Lancer une exception
Exception lors de la fermeture de try-with-resources
Gestion des exceptions Spring Boot