Unter Java tritt ein Fehler auf, wenn Sie eine unerwartete Verarbeitung durchführen, z. B. durch 0 teilen. (Laufzeit Fehler) Sie müssen try, catch und finally-Blöcke verwenden, um die Ausnahmefehlerbehandlung in Java zu behandeln.
try~catch-Anweisung
try{
versuchen Sie zu blockieren
Der Prozess, den Sie ausführen möchten
}
catch(Ausnahmetyp Variablenname) {
Fangblock
Was tun, wenn eine Ausnahme ausgelöst wird?
}
finally {
endlich blockieren
Der letzte Prozess, der durchgeführt werden muss
}
sample1(Teilen Sie durch 0)
public class test1 {
public static void main(String[] args) {
//TODO automatisch generierter Methodenstub
int a=2;
int b=100;
try {
int c = b/a;
System.out.println(c);
}
catch(ArithmeticException e) {
System.out.println("Ausnahme aufgetreten");
System.out.println(e);
return;
}
finally {
System.out.println("End Program");
}
}
}
sample2(Nicht vorhandene Array-Spezifikation)
class SimpleClass{
void doSomething() {
int array[] = new int[3];
array[10]=999;
System.out.println("Beenden Sie die doSomething-Methode");
}
}
public class test2 {
public static void main(String[] args) {
SimpleClass obj = new SimpleClass();
try {
obj.doSomething();
}
catch(ArrayIndexOutOfBoundsException e) {
System.out.println("Ausnahme aufgetreten");
System.out.println(e);
return;
}
finally {
System.out.println("End Program");
}
}
}
Frühere Programme hatten nur einen Thread. Dieser Thread startet die Verarbeitung von der Hauptmethode und führt die Anweisungen in der Reihenfolge von oben aus. Dieser Thread wird als Haupt-Thread bezeichnet. Dies wird als Single-Thread-Programm bezeichnet, es ist jedoch auch möglich, ein Programm zu erstellen, das zwei oder mehr Anweisungen gleichzeitig ausführt. Dies wird als Multithread-Programm bezeichnet. Ein Bild, in dem zwei oder mehr Programmverarbeitungsabläufe vorhanden sind, von denen jeder parallel abläuft.
Das folgende Programm überweist 10.000 Yen pro Person auf ein Bankkonto und zeigt den Gesamtbetrag für 100 Personen an. Um ein Multithread-Programm auszuführen, muss die Thread-Klasse geerbt und die Ausführungsmethode überschrieben werden, um einen vorgegebenen Prozess zu definieren. Sie können es schließlich ausführen, indem Sie eine Instanz der Thread-Klasse in der Hauptmethode erstellen und die Startmethode aufrufen.
Darüber hinaus wird die exklusive Steuerung durchgeführt, indem der Synchronisierungsmethode das synkronisierte Qualifikationsmerkmal hinzugefügt wird, um auf den Abschluss der Thread-Verarbeitung zu warten, und der Methode addOneYen, sodass jeweils nur ein Thread ausgeführt werden kann.
Multithread-Beispiel
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