Une erreur se produit sur Java si vous effectuez un traitement inattendu tel qu'une division par 0. (Erreur d'exécution) Vous devez utiliser les blocs try, catch et finally pour gérer la gestion des erreurs d'exception sur java.
try~déclaration catch
try{
essayer de bloquer
Le processus que vous souhaitez exécuter
}
catch(Type d'exception Nom de variable) {
bloc de capture
Que faire lorsqu'une exception est levée
}
finally {
enfin bloquer
Le dernier processus qui doit être fait
}
sample1(Diviser par 0)
public class test1 {
public static void main(String[] args) {
//TODO talon de méthode généré automatiquement
int a=2;
int b=100;
try {
int c = b/a;
System.out.println(c);
}
catch(ArithmeticException e) {
System.out.println("Il y a une exception");
System.out.println(e);
return;
}
finally {
System.out.println("End Program");
}
}
}
sample2(Spécification de baie inexistante)
class SimpleClass{
void doSomething() {
int array[] = new int[3];
array[10]=999;
System.out.println("Quittez la méthode doSomething");
}
}
public class test2 {
public static void main(String[] args) {
SimpleClass obj = new SimpleClass();
try {
obj.doSomething();
}
catch(ArrayIndexOutOfBoundsException e) {
System.out.println("Il y a une exception");
System.out.println(e);
return;
}
finally {
System.out.println("End Program");
}
}
}
Les programmes précédents n'avaient qu'un seul fil. Ce thread démarre le traitement à partir de la méthode principale et exécute les instructions dans l'ordre du haut. Ce fil est appelé le fil principal. C'est ce qu'on appelle un programme à un seul thread, mais il est également possible de créer un programme qui exécute deux ou plusieurs instructions en même temps. C'est ce qu'on appelle un programme multithread. Une image dans laquelle il y a deux ou plusieurs flux de traitement de programme, dont chacun progresse en parallèle.
Ce qui suit est un programme qui transfère 10 000 yens par personne sur un compte bancaire et affiche le montant total d'argent pour 100 personnes. Afin d'exécuter un programme multi-thread, il est nécessaire d'hériter de la classe Thread et de remplacer la méthode d'exécution pour définir un processus prédéterminé. Vous pouvez enfin l'exécuter en créant une instance de la classe Thread dans la méthode main et en appelant la méthode start.
De plus, le contrôle exclusif est effectué en ajoutant le modificateur syncronized à la méthode join pour attendre la fin du traitement du thread, et à la méthode addOneYen afin qu'un seul thread puisse être exécuté à la fois.
Exemple multithread
class Bank{
static int money=0;
static synchronized void addOneYen() {
money++;
};
}
class Customer extends Thread {
public void run() {
for(int i=0;i<10000;i++) {
Bank.addOneYen();
}
}
}
public class test4 {
public static void main(String[] arg) {
Customer[] customer=new Customer[100];
for ( int i=0;i<100;i++) {
customer[i]=new Customer();
customer[i].start();
}
for(int i=0;i<100;i++) {
try {
customer[i].join();
}catch(InterruptedException e) {
System.out.println(e);
}
}
System.out.println(Bank.money);
}
}
Recommended Posts