Saat menulis program Java, pengecualian biasanya diminta untuk ditangkap, dan beberapa pengecualian tidak perlu ditangkap secara paksa. Orang -orang yang telah ditransfer dari bahasa lain seperti saya memang sedikit bingung, jadi saya akan menafsirkannya kembali dalam pemahaman saya.
Kelas dasar pengecualian adalah pengecualian, dan subclass pengecualian termasuk runtimeException dan pengecualian lainnya. Pengecualian lain ini disebut pengecualian yang diperiksa, dan RuntimeException disebut pengecualian yang tidak dicentang.
Tidak mudah untuk memahami hanya dengan melihat nama. Kompiler tahu bahwa semua jenis atau metode dapat melemparkan pengecualian, dan ketika Anda menggunakan jenis atau metode tertentu, kompiler akan meminta Anda untuk menangkap pengecualian yang diketahui. Pengecualian yang mungkin diketahui oleh kompiler ini adalah pengecualian yang diperiksa. Misalnya, ketika Anda menutup aliran file, IoException telah menyatakan dalam metode dekat bahwa itu dapat dilemparkan, dan kompiler meminta Anda bahwa pengecualian harus ditangkap. Pengecualian RunimeException tidak diketahui selama tahap kompilasi, dan hanya dapat ditentukan selama tahap berjalan. Karena pembagi ini dapat diubah dalam tahap berjalan, tidak ada permintaan untuk ditangkap. RuntimeExceptions ini adalah pengecualian yang tidak terkendali.
Singkatnya, Java akan membuat program ini stabil sebanyak mungkin. Penjelasan ini harus lebih jelas.
Mari kita sampai intinya.
Beberapa teman mungkin mengalami situasi ini ketika men -debug program. Hanya ada dua alasan: 1. Utas di mana pengecualian berada bukan utas yang sama dengan utas yang Anda tangkap, 2. Program ini melempar bukan pengecualian tetapi kesalahan. Kesalahan, seperti pengecualian, warisan dari yang dapat dilempar, mengacu pada kesalahan serius yang tidak boleh ditangkap. Ketika saya melihat penjelasan ini, saya sangat bodoh sehingga saya tidak mengerti mengapa saya tidak boleh menangkap kesalahan. Karena kesalahan terjadi, program tidak akan berjalan secara langsung, sehingga tidak ada artinya untuk menangkapnya. Maka masalah saya datang lagi. Faktanya, asumsi ini tidak benar, karena jika kesalahan benar -benar ada, Anda akan menemukan masalah di lingkungan pengembangan dan tidak mungkin untuk mempublikasikannya ke lingkungan resmi.
Sayangnya, saya berkeliling dan melakukan hal yang bodoh, jadi jangan membahas apakah kesalahan harus ditangkap!
Saya masih berpengetahuan dan tujuan menulis adalah untuk mendapatkan bimbingan semua orang. Jika artikel membantu Anda, itu akan sangat bagus.