thể trùng lặp:
Catching java.lang.OutOfMemoryErrorCó phải là một ý tưởng tồi để nắm bắt OutOfMemoryError không?
OutOfMemoryError là:
Ném khi Java Virtual Machine không thể phân bổ một đối tượng vì nó được ra khỏi bộ nhớ, và không nhiều bộ nhớ có thể được cung cấp bởi bộ thu gom rác
Java nói:
An Lỗi là một lớp con của Throwable cho biết vấn đề nghiêm trọng mà một ứng dụng hợp lý không nên cố gắng nắm bắt. Hầu hết các lỗi là điều kiện bất thường.
này cảm thấy như thính giác:
Nếu bạn đang chết đuối, là hợp lý, bạn không nên cố gắng bơi lên để giữ đầu của bạn trên mặt nước. Cái chết thường là kết quả của các điều kiện bất thường từ .
Hãy tưởng tượng một tình huống mà một người đang chạy dịch vụ. Vì một lý do nào đó, một ứng dụng khác trên cùng một máy chủ đang ăn nhiều bộ nhớ, gây ra một OOM bất ngờ trong dịch vụ của bạn. Có phải đó là một ý tưởng tồi để cố gắng giảm mức tiêu thụ bộ nhớ của dịch vụ này để duy trì cho người dùng không?
Hoặc có điều gì đó cơ bản hơn xảy ra ở cấp JVM ngăn cản việc thực hiện giải pháp như vậy sau khi OOM đã được ném không?
@aix Tôi có thể cắt một vài tham chiếu đến một số cấu trúc dữ liệu bằng cách đặt chúng thành null ngay cả khi tôi không lưu chúng đúng cách trong khi vẫn ổn với điều đó trong các tình huống kịch tính. – JVerstry
@dogbane Tham chiếu của bạn không trả lời được câu hỏi của tôi, câu hỏi này không trùng lặp. – JVerstry
Một sự tương tự tốt hơn sẽ là: Lái xe của bạn bắt lửa. Đừng cố gắng tiếp tục và tiếp cận điểm đến của bạn. Kéo lên vai cứng. – Jim