Perbedaan Antara Pengecualian dan Kesalahan

Perbedaan Antara Pengecualian dan Kesalahan
Perbedaan Antara Pengecualian dan Kesalahan

Video: Perbedaan Antara Pengecualian dan Kesalahan

Video: Perbedaan Antara Pengecualian dan Kesalahan
Video: Perbedaan Nat, Bridge, Host Only dan Internal Network 2024, Juli
Anonim

Pengecualian vs Kesalahan

Perilaku tak terduga pasti terjadi saat program sedang berjalan. Ini bisa karena pengecualian atau kesalahan. Pengecualian adalah peristiwa, yang dapat mengganggu aliran program normal. Kesalahan adalah kondisi yang dapat dianggap tidak dapat dipulihkan. Pengecualian sebagian besar terkait dengan aplikasi itu sendiri, sedangkan kesalahan terkait dengan sistem tempat program berjalan.

Apa itu Pengecualian?

Exception adalah event yang dapat mengganggu alur program normal. Pengecualian nama berasal dari "peristiwa luar biasa". Melempar pengecualian adalah proses membuat objek pengecualian dan menyerahkannya ke sistem runtime. Objek pengecualian dibuat dengan metode di mana pengecualian terjadi. Objek pengecualian berisi informasi yang berguna seperti jenis dan deskripsi pengecualian. Ketika sistem runtime menerima objek pengecualian, ia akan mencoba menemukan seseorang untuk menanganinya di dalam tumpukan panggilan dengan melintasinya dalam urutan terbalik (di mana metode dipanggil). Tumpukan panggilan adalah daftar metode yang diurutkan, yang dipanggil sebelum metode di mana pengecualian terjadi. Sistem runtime berhasil jika menemukan metode dengan penangan pengecualian. Pengendali pengecualian adalah blok kode yang secara resmi dapat menangani pengecualian tersebut. Jika sistem runtime menemukan penangan yang sesuai (yaitu jenis pengecualian cocok dengan jenis yang dapat ditangani), itu akan meneruskan objek pengecualian ke penangan. Ini disebut menangkap pengecualian. Namun, jika pengecualian tidak dapat ditangani, program akan dihentikan. Di Java, eksepsi mewarisi dari 'Throwable class.' NullPointerException dan ArrayIndexOutOfBoundsException adalah dua pengecualian umum di Java.

Apa itu Error?

Kesalahan adalah kondisi yang dapat dianggap tidak dapat dipulihkan seperti program yang membutuhkan jumlah memori yang lebih besar dari yang tersedia. Kesalahan ini tidak dapat ditangani saat runtime. Jika terjadi kesalahan, program akan berhenti. Di Jawa, kesalahan mewarisi dari kelas Throwable. Kesalahan biasanya menunjukkan masalah serius yang tidak boleh ditangkap oleh pemrogram (atau aplikasi). Kesalahan hanyalah kondisi abnormal, yang tidak pernah diharapkan terjadi dalam keadaan normal, dan karena itu tidak pernah diramalkan. Misalnya, OutOfMemoryError, StackOverflowError dan ThreadDead adalah kesalahan tersebut. Metode tidak boleh memiliki penangan untuk kesalahan.

Apa perbedaan antara Pengecualian dan Kesalahan?

Kesalahan dan pengecualian adalah kejadian yang tidak diinginkan selama eksekusi program. Namun, mereka memiliki perbedaan utama. Pengecualian dapat diramalkan oleh programmer, sementara kesalahan sulit untuk diramalkan. Pengecualian dapat dicentang atau tidak dicentang. Tetapi kesalahan selalu tidak dicentang. Pengecualian biasanya menunjukkan kesalahan yang disebabkan oleh programmer. Namun, kesalahan terjadi karena kesalahan sistem atau penggunaan sumber daya yang tidak tepat. Oleh karena itu, pengecualian harus ditangani di tingkat aplikasi, sementara kesalahan harus ditangani di tingkat sistem (hanya jika memungkinkan). Setelah menangani pengecualian, Anda dijamin untuk kembali ke aliran program normal. Tetapi bahkan jika ada kesalahan, programmer mungkin tidak tahu bagaimana menanganinya sejak awal. Tidak seperti penanganan kesalahan tradisional, pengecualian memungkinkan pemisahan kode penanganan kesalahan dari kode biasa.

Direkomendasikan: