English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Wie schreibt man in Java eine Ausnahme in eine Datei mit FileOutputStream und includes das aktuelle Datum?

Es gibt mehrere Frameworks für die Protokollierung von Daten in Dateien. Sie können auch Ihre eigenen Methoden definieren. In jedem Fall können Sie die aktuelle Zeit hinzufügen, um sie zu den protokollierten Ausnahmen hinzuzufügen, indem SieLocalDateTimeKlasse.

Es ist eine unveränderliche Klasse, die Datum und Uhrzeit speichert alsyear-month-day-hour-minute-second.now()Diese Methode dieser Klasse gibt das aktuelle Datum und die aktuelle Uhrzeit zurück.

Verwenden Sie diese Methode, um das aktuelle Datum und die aktuelle Uhrzeit zu Ihrem Fehlermeldung hinzuzufügen und in die erforderliche Datei zu schreiben.

Beispiel

import java.io.FileOutputStream;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Scanner;
public class LoggingToFile {
   private static void writeLogToFile(Exception e) throws IOException {
      FileOutputStream writer = new FileOutputStream("ExceptionLog.txt");
      byte bytes[] = (LocalDateTime.now();+": "+e.toString()).getBytes();
      writer.write(bytes);
      System.out.println("Exception logged to your file");
   }
   public static void main(String[] args) throws IOException {
      Scanner sc = new Scanner(System.in);
      int[] arr = {10, 20, 30, 2, 0, 8};
      System.out.println("Array: \+Arrays.toString(arr));
      System.out.println("Wählen Sie den Nenner und den Zähler (nicht 0) aus diesem Array aus (geben Sie Positionen 0 bis 5)");
      int a = sc.nextInt();
      int b = sc.nextInt();
      try {
         int result = (arr[a])/(arr[b]);
         System.out.println("Ergebnis von "+arr[a]+"/"+arr[b]+": "+result);
      catch(ArrayIndexOutOfBoundsException ex) {
         System.out.println("Warnung: Sie haben eine Position gewählt, die nicht im Array liegt");
         writeLogToFile(ex);
      catch(ArithmeticException ex) {
         System.out.println("Warnung: Sie können eine Zahl nicht durch 0 teilen");
         writeLogToFile(ex);
      }
   }
}

Ausgaberesultat

Geben Sie ein 3 ganzzahlige Werte nacheinander:
Array: [10, 20, 30, 2, 0, 8]
Wählen Sie den Nenner und den Zähler (nicht 0) aus diesem Array aus (geben Sie Positionen 0 bis 5)
1
4
Warnung: Sie können eine Zahl nicht durch 0 teilen
Exception protokolliert in Ihre Datei