Di Java, apakah ada cara untuk mendapatkan (menangkap) semua exceptions
daripada menangkap pengecualian satu per satu?
java
exception
file
exception-handling
Johanna
sumber
sumber
Jawaban:
Jika mau, Anda dapat menambahkan klausul lemparan ke metode Anda. Maka Anda tidak perlu langsung menemukan metode yang dicentang. Dengan begitu, Anda bisa menangkapnya
exceptions
nanti (mungkin pada saat bersamaanexceptions
).Kode tersebut terlihat seperti:
Kemudian nanti Anda dapat menangani
exceptions
jika Anda tidak ingin berurusan dengan mereka dengan metode itu.Untuk menangkap semua pengecualian yang mungkin dilemparkan beberapa blok kode, Anda dapat melakukannya: (Ini juga akan membuat
Exceptions
Anda menulis sendiri)Alasan yang berhasil adalah karena
Exception
merupakan kelas dasar untuk semua pengecualian. Jadi setiap pengecualian yang mungkin terlempar adalahException
(Huruf Besar 'E').Jika Anda ingin menangani pengecualian Anda sendiri terlebih dahulu, cukup tambahkan satu
catch
blok sebelum Exception generik.sumber
Meskipun saya setuju itu bukan gaya yang baik untuk menangkap Pengecualian mentah, ada cara menangani pengecualian yang menyediakan pencatatan yang unggul, dan kemampuan untuk menangani hal yang tidak terduga. Karena Anda berada dalam keadaan luar biasa, Anda mungkin lebih tertarik untuk mendapatkan informasi yang baik daripada waktu respons, jadi kinerja instance tidak boleh menjadi hit besar.
Namun, ini tidak mempertimbangkan fakta bahwa IO juga dapat memunculkan Error. Kesalahan bukanlah Pengecualian. Error berada di bawah hierarki pewarisan yang berbeda dari Pengecualian, meskipun keduanya berbagi kelas dasar Throwable. Karena IO dapat menampilkan Kesalahan, Anda mungkin ingin melangkah lebih jauh untuk menangkap Throwable
sumber
Tangkap pengecualian dasar 'Pengecualian'
sumber
Menangkap Exception merupakan praktik yang buruk - terlalu luas, dan Anda mungkin melewatkan sesuatu seperti NullPointerException dalam kode Anda sendiri.
Untuk sebagian besar operasi file, IOException adalah pengecualian root. Lebih baik tangkap itu.
sumber
Ya ada.
sumber
Anda dapat menangkap beberapa pengecualian dalam satu blok tangkapan.
sumber
Apakah maksud Anda menangkap jenis
Exception
apa pun yang dibuang, bukan hanya Pengecualian tertentu?Jika begitu:
sumber