Bagaimana Mengendalikan Pengecualian dalam Kaedah Penyulitan AES Java?
Pengendalian Pengecualian dalam Kod Java
Pertimbangkan coretan kod Java berikut:
import java.awt.*; import javax.swing.*; import java.awt.event.*; import javax.crypto.*; import javax.crypto.spec.*; import java.security.*; import java.io.*; public class EncryptURL extends JApplet implements ActionListener { // ... public void encrypt(String toEncrypt) throws Exception { try { String plaintext = toEncrypt; String key = "01234567890abcde"; String iv = "fedcba9876543210"; SecretKeySpec keyspec = new SecretKeySpec(key.getBytes(), "AES"); IvParameterSpec ivspec = new IvParameterSpec(iv.getBytes()); Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); cipher.init(Cipher.ENCRYPT_MODE, keyspec, ivspec); byte[] encrypted = cipher.doFinal(toEncrypt.getBytes()); return encrypted; } catch(Exception e) { return null; // Always must return something } } public void actionPerformed(ActionEvent e) { if (e.getActionCommand() == "Submit") { // ... String concatURL = "user=" + subUserName + "&f=" + subFName + "&l=" + subLName + "&em=" + subEmail + "&p=" + subPhone + "&h=" + subHeartbeatID + "&re=" + subRegionCode + "&ret=" + subRetRegionCode; // ... try { byte[] encrypted = encrypt(concatURL); String encryptedString = bytesToHex(encrypted); // ... } catch (Exception exc) { // TODO: handle exception } } } // ... }
Soalan dan jawapan berikut menangani masalah yang dihadapi semasa menyusun kod ini coretan.
Soalan 1: Mengapa coretan kod membuang pengecualian "Pengecualian; mesti ditangkap atau diisytiharkan dibuang" semasa cuba menyusunnya?
Jawapan:
Pengecualian ini berlaku kerana kaedah penyulitan diisytiharkan untuk membuang Pengecualian tetapi tidak mengendalikannya dalam blok cuba-tangkapnya. Untuk menyelesaikan masalah ini, blok tangkapan telah ditambahkan pada kaedah penyulitan untuk mengendalikan Pengecualian.
Soalan 2: Mengapa coretan kod membuang pengecualian "penyata pemulangan hilang" untuk baris 109?
Jawapan:
Kaedah penyulitan telah diisytiharkan kembalikan jenis bait[], yang bermaksud ia mesti mengembalikan nilai jenis itu dalam semua kes. Kod asal tidak mempunyai pernyataan pulangan dalam blok tangkapan, mengakibatkan pengecualian. Kenyataan pemulangan telah ditambahkan pada blok tangkapan untuk mengembalikan null sekiranya berlaku pengecualian.
Pelajaran yang Diperoleh:
- Kaedah dengan jenis pemulangan mesti sentiasa mengembalikan objek jenis itu dalam semua senario yang mungkin.
- Semua pengecualian yang ditanda mesti sentiasa dikendalikan.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Pengecualian dalam Kaedah Penyulitan AES Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Kelas kelas Java melibatkan pemuatan, menghubungkan, dan memulakan kelas menggunakan sistem hierarki dengan bootstrap, lanjutan, dan pemuat kelas aplikasi. Model delegasi induk memastikan kelas teras dimuatkan dahulu, yang mempengaruhi LOA kelas tersuai

Artikel ini membincangkan pelaksanaan caching pelbagai peringkat di Java menggunakan kafein dan cache jambu untuk meningkatkan prestasi aplikasi. Ia meliputi persediaan, integrasi, dan faedah prestasi, bersama -sama dengan Pengurusan Dasar Konfigurasi dan Pengusiran PRA Terbaik

Artikel ini membincangkan menggunakan JPA untuk pemetaan objek-relasi dengan ciri-ciri canggih seperti caching dan pemuatan malas. Ia meliputi persediaan, pemetaan entiti, dan amalan terbaik untuk mengoptimumkan prestasi sambil menonjolkan potensi perangkap. [159 aksara]

Artikel ini membincangkan menggunakan Maven dan Gradle untuk Pengurusan Projek Java, membina automasi, dan resolusi pergantungan, membandingkan pendekatan dan strategi pengoptimuman mereka.

Artikel ini membincangkan membuat dan menggunakan perpustakaan Java tersuai (fail balang) dengan pengurusan versi dan pergantungan yang betul, menggunakan alat seperti Maven dan Gradle.
