Rumah >Java >javaTutorial >Mengapa Kod Java Saya Melemparkan Ralat 'Pengecualian; mesti ditangkap atau diisytiharkan untuk dibuang'?
Latar Belakang:
Apabila menghadapi ralat "Pengecualian; mesti ditangkap atau diisytiharkan untuk dibuang," ia menunjukkan bahawa pengecualian telah dibangkitkan semasa program pelaksanaan, tetapi pengaturcara belum mengendalikan atau mengisytiharkannya sebagai dibuang.
Isu:
Dalam coretan kod yang disediakan:
byte[] encrypted = cipher.doFinal(toEncrypt.getBytes()); return encrypted;
Kaedah penyulitan kehilangan pengisytiharan pengecualian dalam tandatangan kaedahnya dan gagal mengendalikan sebarang pengecualian yang mungkin berlaku dalam percubaan blok.
Penyelesaian:
Untuk menyelesaikan isu, ubah suai tandatangan kaedah penyulitan untuk mengisytiharkan pengecualian yang mungkin dilemparkan:
public static byte[] encrypt(String toEncrypt) throws Exception { // ... code within the try block ... return encrypted; }
Selain itu , dalam kaedah actionPerformed:
public void actionPerformed(ActionEvent e) { // ... code ... try { byte[] encrypted = encrypt(concatURL); // ... code ... } catch (Exception exc) { // ... handle the exception ... } }
Pastikan semua pengecualian yang diperiksa yang dilemparkan oleh kaedah dipanggil adalah dikendalikan atau disebarkan dengan membalingnya semula. Dalam kes ini, kaedah penyulitan mesti mengendalikan atau mengisytiharkan sebarang pengecualian yang mungkin dihadapinya.
Pertimbangan Tambahan:
Atas ialah kandungan terperinci Mengapa Kod Java Saya Melemparkan Ralat 'Pengecualian; mesti ditangkap atau diisytiharkan untuk dibuang'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!