Isi kandungan:
- Pengendalian ralat opsyenal
- Pengendalian yang lebih khusus kepada ralat kurang khusus
- Menggunakan objek pilihan untuk mengelakkan pengecualian
Video: Exception Handling pada java (Try cacth finally throw and thorws) bahasa indonesia - budaychanel 2024
Banyak contoh kod Java yang anda cari untuk tujuan pembelajaran akan merangkumi ralat menjebak di dalamnya. Contoh-contoh tidak akan mengebumikan anda dalam perangkap kesilapan, tetapi mereka akan membuat teknik pengetikan kesilapan yang baik sebahagian dari kod aplikasi apabila mungkin (dan kod pengesanan ralat tidak menyembunyikan tujuannya secara menyeluruh).
Dengan ini, bahagian berikut memberikan gambaran keseluruhan teknik yang digunakan untuk menangkap ralat. Anda akan melihat tiga tahap pengesanan ralat yang biasa digunakan dalam aplikasi Java.
Kesilapan mengetuk adalah tindakan mengesan pengecualian dan memberitahu JRE bahawa anda bercadang untuk melakukan sesuatu dengannya. JRE bertindak balas dengan tidak melewati kesilapan sehingga pemanggil kaedah semasa dan sebaliknya bergantung kepada kaedah semasa untuk membetulkan masalah.
Perangkap kesilapan lazimnya dikaitkan dengan bahagian percubaan mencuba … menangkap pernyataan, sementara pengendalian ralat biasanya dikaitkan dengan bahagian tangkapan cuba … kenyataan tangkapan.
Pengendalian ralat opsyenal
Frasa "pengendalian ralat opsyenal" adalah sedikit kesilapan. Ia adalah pilihan hanya kerana Java tidak memerlukan anda untuk melaksanakannya sebagai sebahagian daripada menggunakan pelbagai objek dalam aplikasi anda. Setiap aplikasi yang anda bina perlu termasuk beberapa tahap pengendalian ralat, walaupun jika Java tidak memerlukan anda untuk menambahnya.
Malah, menambah pengendalian ralat kepada setiap aplikasi yang anda buat, walaupun aplikasi ujian mudah, akan membantu anda menjadi mahir dalam aspek pemrograman Java ini dan meletakkan anda di hadapan pemaju yang tidak mengikuti amalan ini.
Ralat pengendalian adalah tindakan untuk mengatasi pengecualian bahawa aplikasi telah terperangkap. Dalam beberapa kes, pengendalian ralat bermakna memaparkan mesej kepada pengguna dan meminta pembetulan. Walau bagaimanapun, pengendalian ralat boleh mengambil banyak bentuk, sesetengahnya sepenuhnya automatik dan tidak kelihatan kepada pengguna. Tindakan ini biasanya dikaitkan dengan bahagian tangkapan cuba … kenyataan tangkapan.
Pengendalian yang lebih khusus kepada ralat kurang khusus
Kebanyakan aplikasi boleh menghasilkan lebih dari satu pengecualian. Di samping itu, anda mungkin tidak dapat mengesan dengan tepat pengecualian mana aplikasi akan menghasilkan. Dalam kes ini, anda perlu menyediakan pelbagai klausa tangkapan untuk cuba … kenyataan tangkapan. Setiap klausa tangkapan mengkhusus dalam kesilapan tertentu.
Selain itu, anda boleh menggunakan pengendali pengecualian generik untuk situasi tersebut apabila aplikasi anda mengalami ralat yang tidak termasuk dalam set yang anda pada asalnya dijangka.
Menggunakan objek pilihan untuk mengelakkan pengecualian
Daripada semua pengecualian yang mungkin anda lihat ketika bekerja dengan Java, NullPointerException (atau NPE) adalah yang paling lazim dan terkadang yang paling sukar untuk didiagnosis. NullPointerException berlaku bila-bila masa anda melewati nilai nol kepada fungsi Java yang mengharapkan nilai sebenar. Masalahnya ialah tidak semua keadaan yang mewujudkan NPE sebenarnya adalah masalah.
Kadangkala anda mengharapkan mempunyai nilai nol berlaku dan memerlukan beberapa kaedah untuk mengatasinya. Sebagai contoh, pertimbangkan keadaan di mana anda ingin mencari nilai tertentu dalam senarai nilai potensi. Ia sememangnya mungkin bahawa anda tidak akan dapat mencari nilai yang anda mahu, menghasilkan pulangan nilai nol.
Jika anda kemudian cuba memproses nilai nol, anda akan mendapat NPE. Kerana anda menjangkakan nilai nol akan berlaku, mencari kesilapan boleh menjadi sangat sukar.
Hingga kini, sukar untuk pemaju manusia memahami pemikiran hitam-putih komputer. Java 8 sekarang menyediakan objek pilihan untuk menangani situasi di mana nilai pulangan daripada fungsi adalah pilihan dan bukannya diperlukan.