Mengapa Program Terhempas

Mengapa Program Terhempas
Mengapa Program Terhempas

Video: Mengapa Program Terhempas

Video: Mengapa Program Terhempas
Video: IWAN FALS - YANG TERSENDIRI (OFFICIAL AUDIO) 2024, November
Anonim

Pelbagai tugas diselesaikan hari ini dengan bantuan komputer peribadi disediakan oleh adanya banyak program aplikasi. Kemudahan bekerja dengan perisian sangat bergantung pada kebolehpercayaannya, yang dinyatakan dalam keadaan tidak berlaku situasi kecemasan. Walau bagaimanapun, banyak program terhenti pada saat yang paling tidak sesuai. Kenapa?

Mengapa
Mengapa

Mekanisme pengecualian digunakan untuk mengesan dan menangani situasi khas, tidak normal atau salah yang timbul semasa pengoperasian program komputer di bawah kawalan sistem operasi moden. Pengecualian boleh menjadi perkakasan (dilemparkan oleh pemproses) dan perisian (dilemparkan oleh aplikasi itu sendiri atau beberapa komponen luaran pemalam).

Tidak kira jenisnya, pengecualian dapat ditangkap dan ditangani dengan betul. Pengecualian yang tidak tertangkap pergi ke pengendali pustaka runtime root atau pengendali yang dipasang sistem operasi. Sekiranya ini berlaku, program akan terhempas dengan mesej atau tetingkap penghentian yang tidak normal (di Windows). Sekiranya pengendali sistem operasi tidak berfungsi (contohnya, ia sengaja dikeluarkan), program "crash secara senyap". Oleh itu, program terhenti kerana pengecualian yang tidak dapat ditangani. Sebab-sebab berlakunya pengecualian adalah berbeza.

Dalam sebilangan besar kes, program hancur kerana pelaksanaan kod mereka sendiri yang mengandungi kesalahan pelaksanaan yang tersurat atau tersirat. Senarai kemungkinan penyebab kecemasan sangat panjang. Ini adalah kedua kesalahan operasi klasik pada nombor titik terapung (misalnya, pembahagian dengan 0), dan kesilapan bekerja dengan memori (membaca atau menulis di luar ruang alamat proses, akses ke halaman yang dilindungi, menulis ke kawasan memori yang hanya boleh dibaca), tumpukan limpahan kerana pengulangan yang tidak terbatas, dll. Dalam kes ini, pengecualian perkakasan atau pengecualian sistem operasi dilemparkan.

Kesalahan tersirat merangkumi pelbagai kes penyaringan data input yang tidak mencukupi, kurangnya pengesahan nilai penunjuk, dan banyak lagi. Kekurangan seperti itu menyebabkan situasi yang luar biasa hanya dalam kes tertentu.

Kesalahan pelaksanaan juga dapat dijumpai pada komponen luaran yang digunakan oleh aplikasi. Contohnya, di perpustakaan dinamik yang menyediakan fungsi atau modul tambahan yang diperlukan. Kod program yang secara implisit dimuat ke ruang alamat suatu proses (misalnya, untuk memintas fungsi API tertentu) juga dapat menyebabkan program mogok.

Banyak komponen dan perpustakaan (misalnya, ADO pada Windows) menggunakan mekanisme pengecualian terprogram sebagai keutamaan untuk melaporkan kesilapan. Ketiadaan atau pengendalian pengecualian yang tidak lengkap oleh aplikasi seperti ini boleh menyebabkan keruntuhannya walaupun dalam situasi yang tidak berbahaya (seperti kehilangan sambungan ke pangkalan data).

Disyorkan: