Tôi cần phải ghi lại nhật ký nếu chương trình đã thoát đột ngột hoặc với bất kỳ ngoại lệ nào. Ví dụ, khi ai đó nhấn Ctrl+C
trong khi chạy chương trình, tôi cần phải đăng nhập rằng nó đã đột ngột thoát ra. Tôi có thể làm cái này như thế nào?Có thể thực hiện điều gì đó khi chương trình Java thoát đột ngột không?
6
A
Trả lời
9
Bạn có thể thử và sử dụng shutdown hook cho việc này. Từ các tài liệu, móc sẽ được thực hiện trong các trường hợp sau đây:
- Chương trình thoát bình thường
- Máy ảo này sẽ chấm dứt
này đề cập đến tình hình ^C
của bạn, nhưng ngờ vực sẽ bao gồm những tình huống như máy được rút phích cắm (chặn một số loại phần cứng dự phòng trên máy).
Here là một số lưu ý về thiết kế.
dụ thô:
Runtime.getRuntime().addShutdownHook(new Thread() {
@Override
public void run() {
System.out.println("System was shutdown");
}
});
Các vấn đề liên quan
- 1. node.js: chương trình hoặc thoát đột ngột hoặc chỉ bị treo
- 2. Chương trình kết thúc đột ngột ngay cả trong trình gỡ lỗi - điều đó xảy ra như thế nào?
- 3. Điều gì xảy ra khi chương trình java bắt đầu?
- 4. thoát đột ngột với trạng thái của -9
- 5. jQuery Mobile - Thực hiện điều gì đó khi tải trang
- 6. Tôi làm cách nào để thực hiện thử nghiệm đột biến của chương trình Java?
- 7. Chức năng gọi khi thoát chương trình trong java
- 8. Heap có được giải phóng khi chương trình thoát không?
- 9. application_start bắn đột ngột asp.net
- 10. Có thể thay đổi đột ngột trong MVC4 Dao cạo có thể được sửa bằng "@: @"
- 11. Chương trình điều khiển Java
- 12. Làm cách nào tôi có thể thực hiện điều gì đó như find_in_batches_by_sql trong Rails
- 13. Chức năng đảm bảo để được gọi trong C++ trong chấm dứt đột ngột hoặc thoát
- 14. Triển khai và thực hiện điều gì đó với Java trên UNIX
- 15. Java: đợi cho quá trình thực hiện cho đến khi nó thoát
- 16. Java có thể làm điều gì đó như thể loại trong Mục tiêu C không?
- 17. gdb: thoát khỏi chương trình mà không thoát khỏi gdb
- 18. Có điều gì đó giống như find_if trong Java không?
- 19. Thay đổi đột ngột ở đâu?
- 20. Có thể thực hiện một ngôn ngữ lập trình thứ hai bằng ngôn ngữ đó không?
- 21. Java thực thi chương trình dòng lệnh
- 22. Thực hiện chương trình bên ngoài trong java
- 23. bind_param thực hiện điều gì?
- 24. Làm cách nào để thực hiện điều gì đó trước khi gửi?
- 25. Trình điều khiển thiết bị nhân vật Linux có thể phát hiện ra như thế nào khi chương trình sử dụng nó thoát bất thường?
- 26. Thực hiện chương trình từ bên trong chương trình C
- 27. Điều gì xảy ra nếu tôi không xóa đối tượng Vertex Buffer khi chương trình của tôi thoát?
- 28. Thực hiện các chương trình Java thông qua Python
- 29. Có thể chương trình đơn luồng được thực hiện đồng thời trên nhiều lõi CPU không?
- 30. Chương trình Java có thể biết thư mục hiện tại của nó không?
Tôi nghĩ rằng nó sẽ chạy trên CTRL + C và 'SIGTERM' nhưng tôi nghĩ rằng có nhiều cách khác để diệt các chương trình nơi này sẽ không chạy –
hệ thống nhúng I have seen that thể thực sự đăng nhập một sự kiện mất điện. Cần một tụ điện khá lớn và một dịch vụ gián đoạn dịch vụ khá nhỏ, nhưng nó có thể được thực hiện. –
Một cách khác là đăng nhập tắt máy thành công và kiểm tra khi khởi động mà lần chạy cuối cùng của chương trình đã được tắt thành công. –