Menangkap java.lang.OutOfMemoryError?
Dokumentasi Java menasihatkan agar tidak menangkap java.lang.Error, termasuk java.lang.OutOfMemoryError. Walau bagaimanapun, terdapat situasi di mana tindakan sedemikian mungkin wajar.
Bila Catch OutOfMemoryError
Pertimbangkan untuk menangkap OutOfMemoryError hanya untuk penamatan yang anggun, melepaskan sumber dan log punca kegagalan. Ia berlaku apabila peruntukan memori blok gagal disebabkan oleh sumber timbunan yang tidak mencukupi. Namun, timbunan masih mengandungi objek yang diperuntukkan. Dengan menggugurkan rujukan kepada objek masa jalan, lebih banyak memori boleh dibebaskan untuk pembersihan.
Mengelakkan Peruntukan Memori dalam Pengendali Tangkapan
Untuk mengelakkan peruntukan memori selanjutnya dalam pengendali tangkapan, pertimbangkan :
- Pengurusan Memori Manual: Gunakan Yang Tidak Selamat kelas untuk akses ingatan terus, mengelakkan overhed pengumpulan sampah Java.
- Konteks Benang: Gunakan utas berasingan dengan ruang memori khusus untuk pengendalian pengecualian, mengelakkan kebocoran memori daripada utas utama.
- Pengendalian Sumber Luaran: Mewakilkan keluaran sumber kepada entiti luar, seperti rangka kerja pengelogan, untuk mengelakkan peruntukan memori dalam JVM.
Kod Contoh
Kod berikut menunjukkan menangkap OutOfMemoryError dan membebaskan memori untuk pembersihan:
import java.lang.management.ManagementFactory; import java.lang.management.MemoryMXBean; public class OutOfMemoryErrorHandling { private static final int MEGABYTE = (1024 * 1024); public static void main(String[] args) { MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean(); for (int i = 1; i <p> <strong>Kesimpulan</strong></p><p>Menangkap OutOfMemoryError harus didekati dengan sangat berhati-hati dan hanya untuk memudahkan penamatan yang anggun. Dengan mengurus peruntukan memori dengan teliti dalam pengendali tangkapan, adalah mungkin untuk mengelakkan isu ingatan selanjutnya dan membenarkan pembersihan yang betul sebelum JVM keluar.</p>
Atas ialah kandungan terperinci Bilakah Anda Harus Menangkap Java OutOfMemoryError?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa