Daftar Isi:
- Kompilasi kesalahan waktu
- Kompilator Java tidak dapat menemukan setiap kesalahan dalam kode Anda. Jika bentuk kode sudah benar (yaitu, Anda belum membuat kesalahan dalam mengetik elemen yang membuat aplikasi), kompilator tidak akan menemukan kesalahannya.
Video: BAB IX (Exception Handling) : Pengenalan Exception (try..catch) pada Java 2024
Kesalahan dalam aplikasi Java dapat terjadi pada berbagai waktu. Namun, Anda dapat secara luas mengklasifikasikan kapan kesalahan akan terjadi menjadi dua kategori, pada waktu kompilasi dan runtime, seperti yang dijelaskan pada bagian berikut.
Kompilasi kesalahan waktu
Kompilator mengubah kode aplikasi Anda menjadi kode byte Java. Selama proses ini, dibutuhkan kode yang dapat dibaca manusia yang Anda tulis dan mengubahnya menjadi sesuatu yang Java Runtime Environment (JRE) mengerti.
Untuk melakukan proses ini, kompilator harus mengurai kode, yang berarti membaca kode dengan cara yang secara jelas menentukan dengan tepat aplikasi yang Anda inginkan, ketika Anda ingin melakukannya, dan bagaimana Anda ingin tugasnya selesai. Jika Anda melanggar peraturan untuk menulis kode yang tidak ambigu, kompilator akan menampilkan pesan kesalahan. Pesan ini sebenarnya semacam pengecualian.
Parsing berarti membaca masukan yang Anda berikan, seperti kode dalam bentuk yang dapat dibaca manusia, dan mengubahnya menjadi sesuatu yang lain, seperti kode byte Java. Aplikasi juga bisa mengurai masukan pengguna. Misalnya, pengguna bisa mengetikkan string yang kode aplikasi Anda berubah menjadi angka.
Jadi, parsing adalah tindakan membaca beberapa jenis input, menafsirkan masukan itu dengan cara tertentu, dan kemudian menghasilkan output berdasarkan input yang diinterpretasikan. Sebuah parser menghasilkan kesalahan saat input tidak sesuai dengan harapan. Misalnya, jika pengguna memasukkan sebuah string yang berisi huruf C, dan Anda mengharapkan sebuah string berisi angka, seperti 123, parser akan menghasilkan pengecualian yang mengatakan bahwa input salah.
Untuk memastikan bahwa setiap orang memahami dengan tepat bagaimana bahasa Jawa seharusnya bekerja, pengembang membuat spesifikasi untuk itu. Spesifikasi ini mencakup elemen bahasa dalam bahasa khusus yang disebut Backus-Naur Form (BNF). Menggunakan BNF adalah metode yang sangat tepat untuk mendeskripsikan sebuah bahasa sehingga tidak ada risiko salah tafsir oleh siapa pun.
Anda bisa melihat contoh BNF untuk bahasa Jawa di Departemen Ilmu Komputer - Daimi. Jangan terlalu khawatir untuk bisa membaca spesifikasi ini. Kebanyakan pengembang tidak pernah belajar menafsirkan BNF untuk bahasa yang mereka gunakan - itulah domain pengembang kompilator.
Runtime error
Kompilator Java tidak dapat menemukan setiap kesalahan dalam kode Anda. Jika bentuk kode sudah benar (yaitu, Anda belum membuat kesalahan dalam mengetik elemen yang membuat aplikasi), kompilator tidak akan menemukan kesalahannya.
Misalnya, jika Anda menginisialisasi nilai numerik menjadi 5, bukan 4, compiler tidak dapat menemukan kesalahannya karena kompiler tidak tahu bahwa Anda benar-benar bermaksud mengetik tipe 4. Kesalahan semacam ini menciptakan
kesalahan runtime - kesalahan yang terjadi pada beberapa titik selama eksekusi aplikasi. Runtime error dapat terjadi pada semua waktu. Beberapa kesalahan lebih mungkin terjadi pada waktu-waktu tertentu. Daftar berikut memberi Anda beberapa gagasan tentang kapan kesalahan runtime kemungkinan terjadi:
Inisialisasi:
-
Saat aplikasi pertama kali dijalankan - sebelum menampilkan antarmuka apa pun kepada pengguna atau melakukan pekerjaan yang berguna - ini akan berjalan melalui fase inisialisasi Ini saat menetapkan variabel ke jenis yang salah atau mencoba menggunakan variabel sebelum menginisialisasi akan dikenali. Banyak kesalahan terkait sumber daya juga terjadi selama inisialisasi karena sebagian besar aplikasi membuka sumber daya yang dibutuhkan selama ini. Modus operasi:
-
Setelah aplikasi diinisialisasi, ada dalam mode operasi. Jika memiliki antarmuka pengguna, ia mulai berinteraksi dengan pengguna. Inilah saat ketika input pengguna paling penting. Anda juga akan menemukan variabel yang diinisialisasi dengan benar saat ini karena pengguna (atau penerima keluaran aplikasi, seperti sistem) akan melihat bahwa output salah. Permintaan pengguna untuk sumber daya, seperti file data, juga membuat kesalahan selama ini.
Pengolahan latar belakang:
-
Sebagian besar kesalahan pemrosesan latar terjadi akibat lingkungan (seperti kehilangan koneksi jaringan), sumber daya yang hilang (seperti file yang hilang), variabel yang diinisialisasi dengan benar, atau kesalahan dalam cara Anda memberi tahu aplikasi untuk melakukan suatu tugas Beberapa tugas lebih sering dilakukan di latar belakang dibanding yang lain. Misalnya, mencetak dokumen atau mendownload sumber daya dari Internet biasanya dilakukan di latar belakang, sementara pengguna terus bekerja dengan aplikasi di latar depan.
Shutdown:
-
Bila pengguna (termasuk akun sistem) memberi tahu aplikasi, aplikasi ini tidak lagi diperlukan, aplikasi berjalan melalui fase shutdown. Selama fase shutdown ini, aplikasi menutup file dan melakukan pekerjaan rumah tangga lainnya yang memastikan aplikasi tidak meninggalkan kekacauan bagi sistem operasi. Kesalahan paling umum yang dapat terjadi selama fase ini tidak melepaskan sumber daya yang aplikasi Anda gunakan dan tidak menyimpan data ke disk. Tentu saja, kesalahan pengkodean dapat terjadi kapan saja, dan fase operasi ini tidak terkecuali. Anda bisa memberitahu aplikasi untuk menutup lima file ketika hanya empat dari mereka yang benar-benar terbuka.
JRE akan menyajikan sebagian besar kesalahan runtime yang terdeteksi oleh Anda sebagai pengecualian. Namun, JRE tidak akan menangkap setiap kesalahan dalam aplikasi Anda.Anda juga harus melihat output dari aplikasi Anda untuk menentukan apakah output sesuai dengan harapan yang Anda miliki untuk masukan tertentu.
Selain itu, penting untuk melihat keadaan sumber daya apa pun yang Anda gunakan untuk memastikan bahwa semuanya tidak rusak. Misalnya, Anda perlu memastikan bahwa data apa pun yang harus Anda simpan di file sebenarnya berakhir di file saat aplikasi Anda dimatikan.
Java 8 memiliki penekanan kuat pada keamanan, yang berarti Anda akan melihat lebih banyak contoh SecurityException saat Anda bekerja dengan aplikasi Anda.
Melihat peningkatan pengecualian keamanan tidak berarti kode Anda salah atau Java 8 dipenuhi oleh bug - artinya Java 8 secara otomatis menentukan dan memberi tahu Anda tentang masalah yang dapat menyebabkan masalah keamanan saat orang menggunakan aplikasi Anda.
Dokumentasi SecurityException muncul di Java. bersih. Tentu saja, Anda pasti ingin tahu apa semua keriuhan itu.