在Java中,您可以使用try-catch語句來捕獲和處理異常
import java.io.File;
import java.io.FileNotFoundException;
import java.util.logging.FileHandler;
import java.util.logging.Logger;
import java.util.logging.SimpleFormatter;
public class LogExceptionExample {
private static final Logger logger = Logger.getLogger(LogExceptionExample.class.getName());
public static void main(String[] args) {
File file = new File("non_existent_file.txt");
try {
FileHandler fh = new FileHandler("error_log.txt", true);
logger.addHandler(fh);
SimpleFormatter formatter = new SimpleFormatter();
fh.setFormatter(formatter);
readFile(file);
} catch (Throwable e) {
logger.warning("Exception occurred: " + e.getMessage());
for (StackTraceElement element : e.getStackTrace()) {
logger.warning(element.toString());
}
}
}
private static void readFile(File file) throws FileNotFoundException {
// 這里我們故意引發一個FileNotFoundException異常
throw new FileNotFoundException("File not found: " + file.getAbsolutePath());
}
}
在此示例中,我們首先創建了一個名為logger的Logger實例。然后,在try塊中,我們設置了一個FileHandler,將日志記錄到名為error_log.txt的文件中。接下來,我們調用readFile()方法,該方法會引發一個FileNotFoundException異常。
當異常被拋出時,控制流將進入catch塊。在catch塊中,我們使用logger.warning()方法記錄異常信息和堆棧跟蹤。這將把異常信息和堆棧跟蹤寫入error_log.txt文件。
請注意,這只是一個簡單的示例,實際應用程序可能需要更復雜的錯誤處理和日志記錄策略。但是,這個示例向您展示了如何在try-catch語句中記錄異常信息。