Perbezaan Antara Pengecualian Diperiksa dan Pengecualian Runtime

Periksa Pengecualian vs Pengecualian Runtime

Pengecualian adalah jenis peristiwa khas, yang boleh mengganggu aliran program biasa. Pengecualian nama berasal dari "peristiwa luar biasa". Membuang pengecualian adalah proses membuat objek pengecualian dan menyerahkannya kepada sistem runtime. Apabila sistem runtime menerima objek pengecualian, ia akan cuba mencari seseorang untuk mengendalikannya dalam timbunan panggilan dengan melintasinya dalam urutan terbalik (di mana kaedah dipanggil). Sistem runtime itu berjaya jika ia mencari kaedah dengan pengecualian. Pengendali pengecualian adalah satu blok kod yang secara rasmi dapat menangani pengecualian tersebut. Jika sistem runtime mendapati pengendali yang sesuai, ia akan menyerahkan objek pengecualian kepada pengendali. Ini dipanggil menangkap pengecualian. Walau bagaimanapun, jika pengecualian tidak dapat dikendalikan, program akan ditamatkan. Di Jawa, pengecualian mewarisi dari kelas Throwable. Pengecualian yang diperiksa adalah pengecualian di mana pengendalian dikuatkuasakan oleh pengkompil. Pengecualian tetapan adalah jenis pengecualian, yang tidak diperiksa oleh pengkompil.

Apakah Pengecualian Disemak??

Pengecualian yang diperiksa sama ada objek java.lang.exception kelas atau subclassnya (kecuali java.lang.RuntimeException dan subclassnya). Pengecualian diperiksa "diperiksa" pada masa penyusunan. Ini bermakna programmer mesti sama ada menangkap atau membuang pengecualian ini, atau penyusunan akan mengeluh (menyebabkan kesalahan kompilator). Oleh sebab itu, banyak pengecualian pengecualian sangat terkenal dengan pengaturcara. Sebagai contoh, IOException dan kelas subnya dikecualikan pengecualian, dan apabila programmer berurusan dengan mengakses atau mengubah suai fail, pemeriksa pengkompil untuk memastikan bahawa semua kemungkinan IOExceptions dijaga oleh programmer.

Apakah Pengecualian Runtime??

Pengecualian Runtime terdiri daripada java.lang.RuntimeException dan semua sub kelasnya. Secara teoritis, mereka berkhidmat dengan tujuan yang sama seperti pengecualian yang diperiksa, dan boleh dilemparkan atau dikendalikan seperti pengecualian diperiksa, tetapi pengendaliannya tidak dikuatkuasakan oleh pengkompil. Oleh itu, pengecualian Runtime adalah milik keluarga pengecualian yang tidak terkawal. NullPointerException, NumberFormatEception, ClassCastException dan ArrayIndexOutOfBoundsException adalah pengecualian runtime biasa di Jawa.

Apakah perbezaan di antara Pengecualian Diperiksa dan Pengecualian Runtime?

Walaupun, kedua-dua pengecualian pengecualian dan pengecualian runtime adalah kejadian yang tidak diingini semasa pelaksanaan program, mereka mempunyai perbedaan. Pengecualian pengecualian diperiksa dikuatkuasakan oleh pengkompil, tetapi pengecualian runtime tidak. Oleh itu, pengecualian diperiksa mestilah dilemparkan atau dikendalikan agar kod itu dapat disusun, tetapi tidak ada keperluan seperti pengecualian runtime. Akibatnya, pengecualian runtime tergolong dalam kategori pengecualian yang tidak terkawal dan ralat.

Kelemahan dengan pengecualian yang diperiksa adalah bahawa pemrogram perlu mengendalikannya walaupun dia tidak tahu bagaimana. Jadi, jika pengaturcara hanya melemparkan pengecualian baru tanpa membungkus asal, jejak tindanan milik pengecualian asal akan hilang. Ini adalah di mana pengecualian runtime berguna. Kerana semua pengecualian runtime dapat dikendalikan di satu tempat, oleh sebab itu programmer dapat menulis sedikit jumlah kode. Sebaliknya, sejak pengecualian diperiksa mesti ditangkap, tidak ada kejutan bagi pengaturcara. Dia akan sentiasa tahu pengecualian yang diperiksa boleh dibuang dengan kaedah tertentu. Bertentangan dengan ini, pelbagai pengecualian runtime boleh dibuang tanpa pengetahuan pengaturcara.