Apa itu kelas Throwable? Kelas Throwable adalah kelas super dari semua kesalahan atau pengecualian dalam bahasa Java. Ini adalah kelas umum yang mengintegrasikan semua pengecualian.
Kelas Error adalah subkelas dari kelas Throwable, termasuk pengecualian sistem, pengecualian mesin virtual, dan masalah lain yang tidak dapat dicegah oleh pengguna.
Kelas Exception juga merupakan subkelas dari kelas Throwable. Ini merupakan pengecualian yang dapat ditangani oleh program itu sendiri. Kelas ini dibagi menjadi pengecualian runtime (dicentang) dan pengecualian non-runtime (tidak dicentang). Pengecualian runtime mungkin ditangani atau tidak; pengecualian non-runtime harus ditangani.
Pengecualian waktu proses adalah semua pengecualian kelas RuntimeException dan subkelasnya, seperti NullPointerException, IndexOutOfBoundsException, dll. Pengecualian ini tidak dicentang dan dapat ditangkap atau tidak diproses dalam program. Pengecualian ini umumnya disebabkan oleh kesalahan logika program, dan program harus berusaha menghindari terjadinya pengecualian tersebut dari sudut pandang logis.
Ketika RuntimeException terjadi, kita tidak perlu menanganinya, dan mesin virtual biasanya mengambil alih.
Setelah pengecualian runtime terjadi, jika pengecualian tidak ditangkap dan diproses (yaitu, tidak ada tangkapan), sistem akan membuang pengecualian tersebut hingga ke lapisan atas. Jika multi-thread, maka akan dibuang Thread.run(). Jika berulir tunggal, maka akan dilempar oleh Thread.run(). Setelah dilempar, jika itu adalah utas, utas tersebut akan keluar. Jika pengecualian dilempar oleh program utama, maka seluruh program akan keluar. Pengecualian runtime adalah subkelas dari kelas Exception dan juga memiliki karakteristik pengecualian umum, yaitu dapat ditangani dengan blok catch. Hanya saja kita sering tidak menanganinya. Artinya, jika Anda tidak menangani pengecualian runtime, maka setelah pengecualian runtime terjadi, thread akan dihentikan atau program utama akan dihentikan.
Jika Anda tidak ingin mengakhiri, Anda harus menangkap semua pengecualian runtime dan jangan pernah membiarkan thread pemrosesan ini keluar. Jika data abnormal muncul dalam antrian, pemrosesan normalnya adalah membuang data abnormal tersebut dan kemudian mencatat log. Adanya data abnormal tidak boleh mempengaruhi pengolahan data normal selanjutnya.
Pengecualian non-runtime adalah pengecualian selain RuntimeException, dan semuanya termasuk dalam kelas Exception dan subkelasnya. Misalnya: IOException, SQLException, dll. dan Pengecualian yang ditentukan pengguna. Untuk pengecualian semacam ini, kompiler Java memaksa kita untuk menangkap dan menangani pengecualian ini, jika tidak, program tidak akan dikompilasi. Oleh karena itu, ketika menghadapi pengecualian semacam ini, suka atau tidak, kita harus menulis banyak blok tangkapan untuk menangani kemungkinan pengecualian.