Grundlegende Hinweise zum Selbststudium in Java - Kapitel 12: Ausnahmebehandlung und Text-E / A.

Kapitel 12: Ausnahmebehandlung und Text-E / A.

1. Übersicht über die Ausnahmebehandlung

1. Funktion Die
Ausnahmebehandlung ermöglicht es dem Programm, mit unerwarteten Situationen umzugehen und den normalen Betrieb fortzusetzen

2. In Java werden Laufzeitfehler als Ausnahmen behandelt, und Ausnahmen sind ein Objekt

3. Die Ausnahme wird von der Methode ausgelöst, der Aufrufer der Methode fängt die Ausnahme ab und behandelt sie

try{
    
    
//正常情况下的运行情况
}
catch(type ex){
    
    //type:捕获的异常类型  ex:catch块的参数
//处理异常
}

2. Ausnahmetyp

1. Systemfehler
Fügen Sie hier eine Bildbeschreibung ein

2. Ausnahmen sind Objekte, und Objekte werden durch Klassen definiert. Die Stammklasse der Ausnahme ist java.long.Throwable.
Fügen Sie hier eine Bildbeschreibung ein
Sie können auch Ihre eigene Ausnahmeklasse erstellen, indem Sie die Exception-Klasse oder die Unterklasse von Exception erben

3. Häufige Ausnahmen

abnormal Beschreibung
ArrayIndexOutOfBountsException Array außerhalb der Grenzen
InputMisMatchException Wenn Sie eine Ganzzahl eingeben, geben Sie diese als Gleitkommazahl ein
Arthmetische Ausnahme 0 als Divisor (eine durch 0 geteilte Gleitkommazahl erzeugt keine Ausnahme )
IllegalArgamentException Unzulässige oder unangemessene Parameter, die an die Methode übergeben wurden

Beachten Sie, dass die
folgenden Beispiele keine Ausnahmen auslösen, sondern überlaufen

long l=Long.MAX_VALUE+1;//-9223372036854775808

4. Ausnahmen deklarieren und abfangen.
Schlüsselwort Deklaration: Würfe
deklarieren mehrere durch Kommas getrennte Ausnahmen. Schlüsselwort
Throw: throw

public static void method() throws Exception()

Das Folgende ist ein Beispiel für eine Deklaration, die eine Ausnahme abfängt

	public static void main(String[] args) {
    
    
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		int x = in.nextInt();
		int y = in.nextInt();
		try {
    
    
			System.out.println(devide(x, y));//正常情况下运行
		} catch (ArithmeticException e) {
    
    //捕获异常
			System.out.println(e.toString());//处理异常
		}
	}

	public static int devide(int x, int y) {
    
    //此处异常为运行时异常,故不需要显式声明
		if (y == 0) {
    
    
			throw new ArithmeticException("0不能作除数");//抛出ArithmeticException异常
		} else {
    
    
			return x / y;
		}
	}
	//输入与返回结果:
	//3
    //0
    //java.lang.ArithmeticException: 0不能作除数

3. Ausnahmebehandlung

1. Wenn die Ausnahme nicht in der übergeordneten Klasse deklariert ist, kann sie nicht in der Unterklasse vererbt werden, um die Ausnahme zu deklarieren

2. Wenn die Ausnahme in der aktuellen Methode nicht abgefangen wird, wird sie an den Aufrufer der Methode übergeben. Dieser Vorgang wird wiederholt, bis die Ausnahme abgefangen oder an die Hauptmethode übergeben wird

3. Ein Kompilierungsfehler tritt auf, bevor der catch-Block der übergeordneten Klasse vor dem catch-Block der Unterklasse angezeigt wird

try{
    
    }
catch(Exception e){
    
    }
catch(IOException e){
    
    }//错误的顺序

4. Multi-Catch-Ausnahme in JDK7

catch(Exception1|Exception2|Exception3|……)
try{
    
    
method();//如果此方法抛出异常而没有处理,则不会执行下面的语句
System.out.println("hello");
}

5. Wenn keine Ausnahme auftritt, verursacht der Try-Catch-Block keinen zusätzlichen System-Overhead

6.
finally- Klausel Unabhängig davon, ob eine Ausnahme auftritt, wird die finally-Klausel immer ausgeführt

Auch wenn vor der Schlussklausel eine return-Anweisung steht, wird die finally-Klausel dennoch ausgeführt

7. Wenn ein Ausnahmebehandler eine Ausnahme nicht behandeln kann oder den Aufrufer die Ausnahme nur bemerken lässt, werfen Sie die Ausnahme erneut

8. Erstellen einer benutzerdefinierten Ausnahmeklasse Die
Ausnahme umfasst vier Konstruktionsmethoden, von denen die folgenden zwei sind

Exception();//没有消息的异常
Exception(message:String);//有消息的异常

Four.File-Klasse

Die File-Klasse enthält Methoden zum Abrufen von Datei- / Verzeichnisattributen sowie zum Umbenennen und Löschen von Dateien. Sie enthält keine Methoden zum Lesen und Schreiben von Dateiinhalten.

Durch das Erstellen einer Dateiinstanz wird keine Datei auf dem Computer erstellt. Unabhängig davon, ob die Datei vorhanden ist, können Sie eine Dateiinstanz erstellen

File file = new File("c:\\z下载\\files\\test\\Demo.txt");
File file = new File("c:/z下载/files/test/Demo.txt");
//使用/或者\\都可以

Die Methoden in der File-Klasse werden nicht im Detail vorgestellt, sie können online gefunden werden.

Fünftens: Eingabe und Ausgabe von Dateien

Verwenden Sie die Scanner-Klasse, um Daten aus dem Text zu lesen, und verwenden Sie die PrintWriter-Klasse, um Daten aus dem Text zu schreiben

java.io.PrinterWriter kann Dateien erstellen und Daten schreiben

Der Stream muss mit close () geschlossen werden, sonst können die Daten nicht in der Datei gespeichert werden

Sie können try-with-source in jdk7 verwenden, um zu verhindern, dass Sie vergessen, den Stream zu schließen

	public static void main(String[] args) {
    
    
		// TODO Auto-generated method stub
		File file = new File("c:\\z下载\\files\\test\\notexist.txt");//创建File对象
		try (PrintWriter printWriter = new PrintWriter(file)) {
    
    
			for (int i = 0; i < 10; i++) {
    
    
				printWriter.print(i);//将数据写入文件
			}

		} catch (FileNotFoundException e) {
    
    
			e.printStackTrace();
		}

	}

Fügen Sie hier eine Bildbeschreibung ein
Um Scanne zum Lesen von Daten aus einer Datei zu erstellen, muss eine Instanz mit der Konstruktionsmethode new File (fileName) erstellt werden.

		File file = new File("c:\\z下载\\files\\test\\notexist.txt");
		try (Scanner input = new Scanner(file)) {
    
    
			while (input.hasNext()) {
    
    
				System.out.print(input.nextInt());
			}
		} catch (FileNotFoundException e) {
    
    
			e.printStackTrace();
		}

Lesen Sie Daten aus dem Web

		File file = new File("c:\\z下载\\files\\test\\notexist2.txt");
		try {
    
    
			URL url = new URL("http://www.baidu.com/index.html");

			try (Scanner in = new Scanner(url.openStream()); // 打开流
					PrintWriter printWriter = new PrintWriter(file)) {
    
    
				while (in.hasNext()) {
    
    
					printWriter.print(in.nextLine());//写入文件
				}
			}

		} catch (MalformedURLException e1) {
    
    // MalformedURLException 地址输入错误异常
			e1.printStackTrace();
		}

Fügen Sie hier eine Bildbeschreibung ein
Hinweis

  • Wenn Sie die Eingabe wiederholen müssen, schreiben Sie in.nextLine () in catch, um die aktuelle Zeile zu verwerfen und zu umbrechen
  • Die Klasse ist für das Auslösen von Ausnahmen verantwortlich, und die Klasse, die diese Methode aufruft, ist für das Erfassen und Verarbeiten verantwortlich

Benutzerdefinierte Ausnahmeschritte

  • Erben Sie die Unterklasse Ausnahme oder Ausnahme
  • Rufen Sie sper (s) auf Anfrage an;
  • Deklarieren und werfen Sie die gerade in einer anderen Klasse definierte Ausnahmeklasse
  • Ausnahmen in der Testklasse abfangen und behandeln

Sechs. Zusammenfassung

Durch das Studium dieses Kapitels habe ich die Grundkenntnisse über Java-Ausnahmen und -Handhabung, viele Ausnahmen und die Ursachen von Ausnahmen sowie die Verwendung der File-Klasse zum Erstellen von Textobjekten, zum Verstehen der Texteingabe und -ausgabe sowie zum Abrufen von Informationen aus dem Internet erlernt .

Komm schon! Kapitel 13 Mehr sein ...

Ich denke du magst

Origin blog.csdn.net/weixin_42563224/article/details/104364602
Empfohlen
Rangfolge