English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Ci sono diversi framework di logging che possono essere utilizzati per registrare dati nei file. Puoi anche definire i tuoi metodi. In qualsiasi caso, per aggiungere l'ora corrente alle eccezioni registrate, puoi utilizzareLocalDateTimeclasse.
È una classe immutabile che rappresenta la data e l'ora, e memorizza la data e l'ora comeanno-mese-giorno-ora-minuto-secondo.now()
Il metodo di questa classe restituisce la data e l'ora corrente.
Utilizzare questo metodo per connettere la data e l'ora corrente al messaggio di eccezione e scriverlo nel file desiderato.
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("Scegli il numeratore e il denominatore (non 0) da questo array (inserisci posizioni da 0 a 5)"); int a = sc.nextInt(); int b = sc.nextInt(); try { int result = (arr[a]) / (arr[b]); System.out.println("Risultato di " + arr[a] + "/" + arr[b] + ": " + result); }catch(ArrayIndexOutOfBoundsException ex) { System.out.println("Attenzione: Hai scelto una posizione che non è nell'array"); writeLogToFile(ex); }catch(ArithmeticException ex) { System.out.println("Attenzione: Non puoi dividere un numero per 0"); writeLogToFile(ex); } } }
Risultato di output
Inserisci tre valori interi uno per uno: Array: [10, 20, 30, 2, 0, 8] Scegli il numeratore e il denominatore (non 0) da questo array (inserisci posizioni da 0 a 5) 1 4 Attenzione: Non puoi dividere un numero per 0 Eccezione registrata nel file